我有以下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