我在代码中有一个按钮,我需要停止其他事件点击此按钮,但我需要其他事件仍然绑定。JQuery取消其他事件
代码:
var cancel = true;
$("#btn").on("click", function(ev) {
console.log("FIRST CLICK");
});
$("#btn").on("click", function(ev) {
console.log("SECOND CLICK");
if(cancel) {
--- cancel first click---
}
});
用法:
cancel = true;
$("#btn").click();
cancel = false;
$("#btn").click();
预期输出:
SECOND CLICK
FIRST CLICK
SECOND CLICK
我已经尝试
ev.stopImmediatePropagation();
ev.stopPropagation();
ev.preventDefault();
return false;
但是这项工作中的任何一项,我如何阻止其他所有未绑定的点击事件?
如果第一个首先连接,还有你能真正做到....你可以代替鼠标按下绑定点击并停止它什么都没有。或者你可以挂接其他事件来使用eventDelegation ...或者你可以重写jQuery如何添加事件,以便你可以绑定你的第一个事件。 – epascarello
我不明白你想达到什么目的?你的事件会发生什么?你是否希望在按钮2的动作实际上正在进行的时候点击按钮1?将click事件绑定两次到同一个id也没有意义。请使用开关块或if/else。 –
你想取消还是可以删除其他事件处理程序? –