我使用的是jQuery 1.10.2,但如果最现代的版本不一样,我也想知道它的解决方案。
我有一个JavaScript文件,它将添加和删除一些自定义事件。
$(window).on('clicked_button', function(event) {
// Do stuff
});
if (someCriteria) {
$(window).off('clicked_button');
}
if (otherCriteria) {
$(window).trigger('clicked_button');
}
我知道您可以遍历数据对象中的事件来检查事件是否已经绑定,但这是必要的吗?我不在乎事件是否已经绑定,我只想确保在满足someCriteria
之后不会绑定它。
当我在Firefox的js控制台中运行$(window).off('clicked_button');
时,它只返回窗口对象。如果事件还没有绑定,那么我可以假设off()
函数不会抛出错误吗?我宁愿只使用off()
,让它安静地失败,而不是在解除绑定之前必须循环通过绑定的事件
我需要这个来为现代浏览器和IE 9+工作。
根据jQuery API文档,在1.7版本中添加了off()。即使自定义'clicked_button'
事件从未绑定到元素,$(window).off('clicked_button')
也将静默失败。
类似地,调用$(window).off()
将删除所有事件处理程序而不会出错,即使没有绑定任何事件处理程序。