在什么情况下会使用 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/