为什么不'不要停止这小提琴里的即时传播工作

Why doesn't stopImmediatePropagation work in this fiddle?

本文关键字:小提琴 工作 传播 为什么不      更新时间:2023-09-26

我正在尝试使用stopImmediatePropagation()来防止另一个事件发生。该事件绑定到我用来绑定到stopImmediatePropagation()的同一元素。

场景是,我正在使用一个库(tour.js)进行网络游览。在网络游览期间,我不希望与页面进行任何交互(除了点击下一个/上一个按钮进行游览)。

我实现这一点的方法是在绑定了点击的元素上使用stopImmediatePropagation()。然后,我在退出巡演时解除绑定stopImmediatePropagation

到目前为止,当我试图阻止的操作通过jquery click()方法调用时,这是有效的,但当操作通过on()方法绑定时,这似乎不起作用

我遇到了一个问题,我正在调用stopImmediatePropagation(),但其他操作仍在运行。我在一个简单的JSFiddle中创建了一个示例:http://jsfiddle.net/0w74vkmj/

HTML:

<button id="button">Hi</button>

JS:

$("#button").on("click", function(){
    alert("hi");
});
$("#button").on("click", function(e){
    e.stopImmediatePropagation();
});

由于"hi"是先添加的,所以它是先激发的。将其更改为您期望的效果:

$("#button").on("click", function(e){
    e.stopImmediatePropagation();
});
$("#button").on("click", function(){
    alert("hi");
});