在点击一个按钮或其他东西时运行单击函数

3

所以我有以下类似的代码:

$('#friendRequests').on('click', '.acceptFriendRequest', function (event) {
 // code here
}

我该如何让 .denyFriendRequest 的点击事件运行上述相同的函数,并且知道哪个按钮被点击了(以决定在后端接受还是拒绝请求)

谢谢


如果使用了 Stack Overflow 解决了您的问题,通常被认为是一个良好的实践,您应该“接受”您认为对您最有帮助、最合适或在并列的情况下最先出现的答案。 - Rob Baillie
3个回答

1
使用多重选择器(“selector1,selector2,selectorN”)将事件绑定到多个元素,并使用this,$(this)或this.target引用当前元素。

实时演示

$('#friendRequests').on('click', '.acceptFriendRequest, .denyFriendRequest', function (event) {    
     alert(this.className);
     //alert($(this).attr('class');
     //alert(event.target.className);
});

如果您希望元素具有多个类,并且需要其中一个类为.acceptFriendRequest或.denyFriendRequest,则可以使用.hasClass()。请注意,此函数仅检查元素的类属性,不会检查父级或子级元素的类。
$('#friendRequests').on('click', '.acceptFriendRequest, .denyFriendRequest', function (event) {    
   if($this).hasClass('acceptFriendRequest')
   {

   }
   if($this).hasClass('denyFriendRequest')
   {

   }
});

使用 $(this).hasClass('. acceptFriendRequest') 可能比 className 更好,以防其他类被应用到这些元素上。 - Christian

1
尝试使用jQuery hasClass()函数:
$('#friendRequests').on('click', function (event) {

  if ($(this).hasClass("acceptFriendRequest")) {
    //
  } else if ($(this).hasClass("denyFriendRequest")) {
    //
  } else {
    //
  }
}

0
你可以这样做:
$('#friendRequests').on('click', '[class$="FriendRequest"]', function (event) {
  console.log(event.target.className);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接