我有以下Fiddle其中我有兩個事件處理程序附加到按鈕的click
事件。我的目標是讓第二個事件處理程序刪除第一個事件處理程序,以便在按下按鈕時僅向用戶顯示Hello2
。我在這裏讀到off()
方法旨在實現這一點,但我未能達成目標。我的猜測是我正在使用$(document).on(...
語法。有任何想法嗎?我花了半天的時間!使用off()刪除Jquery中的元素的其他處理程序
UPDATE:
放在換句話說,我希望第二個事件監聽器來抵消/關閉的第一個。
我有以下Fiddle其中我有兩個事件處理程序附加到按鈕的click
事件。我的目標是讓第二個事件處理程序刪除第一個事件處理程序,以便在按下按鈕時僅向用戶顯示Hello2
。我在這裏讀到off()
方法旨在實現這一點,但我未能達成目標。我的猜測是我正在使用$(document).on(...
語法。有任何想法嗎?我花了半天的時間!使用off()刪除Jquery中的元素的其他處理程序
UPDATE:
放在換句話說,我希望第二個事件監聽器來抵消/關閉的第一個。
從W3Schools的:
// Remove the click event for all <p> elements
$("button").click(function(){
$("p").off("click");
});
不知道如果這是你在找什麼。但是,這是一種方法:
$(function()
{
$(document).on('click', 'button', function(e){
alert('hello1');
e.stopImmediatePropagation();
});
$(document).on('click', 'button', function(){
alert('hello');
});
});
這與我想實現的接近,但我希望LAST偵聽器取消所有以前的偵聽器。反之亦然。我不想通過簡單地改變代碼本身的順序來解決問題 –
難道你不能只使用'$(document).off('click','button');'附加第二個事件處理程序嗎?因爲即使你從第二個事件處理程序中關閉了以前的事件處理程序,在關閉之前,先前的事件處理程序至少會執行一個。 – azs06