javascript - 什么时候使用 jQuery isImmediatePropagationStopped() 方法?

标签 javascript jquery jquery-events

在什么情况下会使用 jQuery 的 isImmediatePropagationStopped方法?他们的文档页面上的示例没有帮助。

最佳答案

如果您遇到多个 .live() 的情况例如,您想要 .stopImmediatePropagation()然后在下面的处理程序中检查它,因为您已经冒泡到相同的元素。让我们举一个活生生的例子:

$("a").live("click", function(e) {
    alert("Handler 1");
    e.stopImmediatePropagation();
}).live("click", function(e) {
    alert("Handler 2");
});

You can test it here - 注意两个警报仍然触发。

即使我们立即停止传播,我们也在一个无关紧要的级别上收听,所以我们实际上需要检查它:

$("a").live("click", function(e) {
    alert("Handler 1");
    e.stopImmediatePropagation();
}).live("click", function(e) {
    if(e.isPropagationStopped()) return;
    alert("Handler 2");
});

You can test it here - 只有第一个警报会触发,这是预期的结果。根据您的事件顺序,.delegate() 会发生相同的情况。 .当然还有其他示例,但这些是您在正常使用中很可能遇到的情况。

关于javascript - 什么时候使用 jQuery isImmediatePropagationStopped() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097880/

相关文章:

javascript - 在循环中声明的变量和重新使用的变量会发生什么

javascript - 如何使用 vimeo javascript API 获取视频时长?

javascript - 构建与移动设备/平板电脑兼容的 Web 应用程序的最佳实践是什么

jquery - ASP.NET 像 ValidationGroup 使用 JQuery 验证插件?

javascript - 在 Shopify 中使用 ajax 更新购物车数量时避免使用产品类型

javascript - 加载此元素后立即将类名添加到元素

javascript - 在动画期间拒绝 jQuery 事件

javascript - 将 return 键更改为 tab 功能

javascript - 使用循环将两个字符串字符排列成一个字符串

javascript - flex 元素是否有可能与它们上方的元素紧密对齐?