jQuery多事件处理程序 - 如何取消?

Jos*_*ola 44 jquery event-handling javascript-events

我有两个函数绑定到两个不同时间的单击事件(使用jQuery).他们被解雇的顺序很重要.他们按照正确的顺序开火.问题是,当第一个函数返回false时,第二个函数仍在触发!

我该如何正确取消活动?

示例代码:

$(document).click(function() { 
  alert('a');
  return false;
});

$(document).click(function() {
  alert('b');
});
Run Code Online (Sandbox Code Playgroud)

单击页面时,您仍会看到"b"警告消息.这是无法接受的!

Ken*_*ing 85

使用stopImmediatePropagationjQuery事件对象的功能.

使其余的处理程序不被执行.此方法还通过调用event.stopPropagation()来停止冒泡.

$(document).click(function(event) { 
  alert('a');
  event.stopImmediatePropagation();
  return false;
});

$(document).click(function() {
  alert('b');
});
Run Code Online (Sandbox Code Playgroud)