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

标签 jquery event-handling jquery-events

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

如何正确取消事件?

示例代码:

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

$(document).click(function() {
  alert('b');
});

单击该页面时,您仍然会看到“b”警报消息。这是 Not Acceptable !

最佳答案

使用stopImmediatePropagation jQuery 事件对象的功能。

Keeps the rest of the handlers from being executed. This method also stops the bubbling by calling event.stopPropagation().

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

$(document).click(function() {
  alert('b');
});

关于jQuery 多个事件处理程序 - 如何取消?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652495/

相关文章:

javascript - 如果调用了 JavaScript 事件监听器并且目标元素丢失,会发生什么情况?

javascript - 根据复选框检查删除文本框值

.net - 为什么子不能同时实现接口(interface)和处理事件?

javascript - 如何在模块化用户界面中管理基于事件的输入?

javascript - 在iframe的父窗口中触发事件

javascript - 单击 jQuery 中的按钮刷新整个浏览器或所有选项卡

javascript - 如何使 <li> 仅在滚动时出现在导航栏中

javascript - 在sapui5中使用外部js库

javascript - rails : Javascript does not work on paginated objects

python - 处理来自同一事件循环的 SimpleXMLRPCServer 调用和 Asyncore.dispatchers 事件