我在代碼中有一個按鈕,我需要停止其他事件點擊此按鈕,但我需要其他事件仍然綁定。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。 –
你想取消還是可以刪除其他事件處理程序? –