当 2 个或更多相同时,是否可以在 jQuery 中取消绑定特定的事件处理程序
Is it possible to unbind specific event handlers in jQuery when 2 or more are the same?
看看这段代码:
$(window).on('load resize scroll', function() {
console.log('hello');
});
$(window).on('load resize scroll', function() {
console.log('goodbye');
});
如果在某个时候我想阻止控制台记录"hello",但仍然希望记录"再见",该怎么办?
因为这个:
$(window).unbind('load resize scroll');
取消这两个日志。
使用事件命名空间
事件名称可以通过事件命名空间进行限定,从而简化 删除或触发事件。例如,"click.myPlugin.simple" 为此特定定义了 myPlugin 和简单命名空间 单击"事件"。通过该字符串附加的单击事件处理程序可以是 使用 .off("click.myPlugin") 或 .off("click.simple") 删除,而不带 干扰附加到元素的其他单击处理程序。命名空间 类似于 CSS 类,因为它们不是分层的;只有一个 名称需要匹配。以下划线开头的命名空间是 保留供jQuery使用。
$(window).on('load.one resize.one scroll.one', function() {
console.log('hello');
});
$(window).on('load.two resize.two scroll.two', function() {
console.log('goodbye');
});
然后
$(window).off('load.one resize.one scroll.one');
命名处理程序:
function sayHello() {
console.log('hello');
}
function sayGoodbye() {
console.log('goodbye');
}
$(window).on('load resize scroll', sayHello);
$(window).on('load resize scroll', sayGoodbye);
当你想停止打招呼时,只需把它off
$(window).off('load resize scroll', sayHello);
相关文章:
- jquery点击函数select&取消选择
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- jquery选中并取消选中所有操作
- jQuery-取消选中复选框
- 如何通过jQuery选中所有复选框并在单击一个复选框时取消选择
- jQuery UI 选项卡取消选择事件或在选择时保存上一个选项卡
- event.preventDefault() 不会在 jQuery Mobile 中取消链接方向
- 使用 Jquery 使取消按钮绕过自定义验证
- Jquery 无法在单击时选择和取消选择 td
- 如何在使用jquery向数据库发送数据时取消激活的按钮
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- 取消jQuery中的延期承诺
- 单击一个按钮可取消jQuery中另一个(外部)按钮的单击事件
- ajaxStart取消jQuery自动完成
- 如何通过点击任何地方取消jQuery效果
- 取消jquery内容过滤器中的fadeTo效果
- 我应该在什么时候或在什么条件下取消jQuery中的对象
- 取消 jquery submit() 方法
- 取消 jQuery 悬停