2017-06-02 47 views
0

我有以下Fiddle其中我有兩個事件處理程序附加到按鈕的click事件。我的目標是讓第二個事件處理程序刪除第一個事件處理程序,以便在按下按鈕時僅向用戶顯示Hello2。我在這裏讀到off()方法旨在實現這一點,但我未能達成目標。我的猜測是我正在使用$(document).on(...語法。有任何想法嗎?我花了半天的時間!使用off()刪除Jquery中的元素的其他處理程序

UPDATE:

放在換句話說,我希望第二個事件監聽器來抵消/關閉的第一個。

+0

難道你不能只使用'$(document).off('click','button');'附加第二個事件處理程序嗎?因爲即使你從第二個事件處理程序中關閉了以前的事件處理程序,在關閉之前,先前的事件處理程序至少會執行一個。 – azs06

回答

0

從W3Schools的:

// Remove the click event for all <p> elements 
$("button").click(function(){ 
    $("p").off("click"); 
}); 
0

不知道如果這是你在找什麼。但是,這是一種方法:

$(function() 
{ 
    $(document).on('click', 'button', function(e){ 
     alert('hello1'); 
     e.stopImmediatePropagation(); 
    }); 

    $(document).on('click', 'button', function(){ 
     alert('hello'); 
    }); 
}); 
+0

這與我想實現的接近,但我希望LAST偵聽器取消所有以前的偵聽器。反之亦然。我不想通過簡單地改變代碼本身的順序來解決問題 –

相關問題