什么时候可以使用jQuery isImmediatePropagationStopped()方法?

rks48beu  于 2022-12-18  发布在  jQuery
关注(0)|答案(1)|浏览(92)

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

7lrncoxx

7lrncoxx1#

例如,如果你遇到了多个.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()也会发生相同的情况。当然还有其他示例,但这些都是您在正常使用中可能遇到的情况。

相关问题