如果我绑定了多个事件处理程序,我可以确定是哪个事件触发了jQuery中的事件处理程序吗?

ttisahbt  于 2022-12-22  发布在  jQuery
关注(0)|答案(1)|浏览(134)

检查以下示例:

$('button').bind('click focus', function() {

   // Did I click or focus?
});

在将多个事件绑定到一个处理程序时,有没有办法解决这个问题?
这 * 可能 * 行得通,但有点难看:

var eventType;

$('button').click(function() {
   eventType = 'click';
   do();
});

$('button').focus(function() {
   eventType = 'focus';
   do();
});

function do() {
    alert(eventType);
}
nvbavucw

nvbavucw1#

可以在event object(传递给处理程序的第一个参数)上使用event.type,如下所示:

$('button').bind('click focus', function(e) {
  if(e.type == "click") {
    //do something, it was a click
  }
});

相关问题