我想知道是否有一种优雅的方法可以在不影响类似事件的情况下从 HTML 元素中删除特定的事件监听器。
例。
var a = {
addEvent: function(){
$('body').on('click', function(){
//does something here.
});
}
}
var b = {
addEvent: function(){
$('body').on('click', function(){
//does something else here.
});
}
}
a.addEvent();
b.addEvent();
所以问题是:如何在不删除对象 a
的点击事件的情况下删除 b
的事件?
$('body').off('click'); //removes both event listeners
我假设大多数方法都会杀死两个听众。很高兴看到任何优雅的回应。
最佳答案
一个选择是 namespace the events :
var a = {
addEvent: function(){
$('body').on('click.a', function(){
//does something here.
});
}
}
var b = {
addEvent: function(){
$('body').on('click.b', function(){
//does something here.
});
}
}
a.addEvent();
b.addEvent();
$('body').off('click.a'); //removes the a event listener
关于javascript - 如何在不删除类似监听器的情况下从父级删除 jQuery 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29355079/