我具有以下功能(为简单起见,将其简化):
b=((1.374), (6.978), (3.987))
因此,当我单击$(document).on('click', '.js-trigger', function() {
console.log('click enabled');
});
时,会收到console.log消息,到目前为止一切正常。然后,一旦我调整窗口大小,它应该停止执行此功能。我尝试了以下代码:
.js-trigger
然后,当我单击$(window).resize(function() {
$(document).off('click', '.js-trigger');
});
时,它应该不再输出console.log消息,但仍然可以!我尝试了许多不同的方法,但是.js-trigger
事件似乎从未成功发生过……我在做什么错了?
有趣的是,如果我将其更改为此:
off()
它可以按预期工作,但是我需要委派事件,因为有时页面加载时DOM中不存在$('.js-trigger').on('click', function() {
console.log('click enabled');
});
$(window).resize(function() {
$('.js-trigger').off();
});
...
答案 0 :(得分:0)
最简单的方法之一是修改委托事件侦听器,以使子选择器具有附加条件。
$(document).on('click', '.js-trigger:not(.ignore)', function() {
console.log('click enabled');
});
然后为那些您不希望发生逻辑的人添加忽略类。或您选择的任何条件逻辑。