我想知道为什么这段代码会有效,如果不是,有更好的方法可以确保在附加新事件处理程序之前删除事件处理程序:
$('.selector')
.off('click', '.item')
.on('click', '.item', function() {
// code goes here
})
感谢您提供帮助,以了解这是否是确保在将另一个事件处理程序添加到选择器之前已删除事件处理程序的最佳方法。
答案 0 :(得分:2)
您可以创建一个jQuery函数,一次调用这两个函数:
$.fn.onAndOff = function(event, selector, handler) {
this.off(event, selector)
.on(event, selector, handler);
}
然后像这样使用它:
$(".selector").onAndOff("click", ".item", function() {
// code goes here
});
答案 1 :(得分:0)
如果存在为应用中的特定元素创建多个相同点击事件的风险,则这可能是一种解决方案。但是,通常,应用程序的逻辑旨在防止这种情况发生。