2017-06-02 30 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侦听器取消所有以前的侦听器。反之亦然。我不想通过简单地改变代码本身的顺序来解决问题 –

相关问题