【发布时间】:2011-04-03 22:05:12
【问题描述】:
我可以使用这段代码来移除点击事件,
$('p').unbind('click')
但是,有一些方法可以删除所有事件吗?
在 jquery 中有一个名为 unbindAll 的方法吗?
谢谢
【问题讨论】:
-
值得将您接受的答案从 Nick 的答案更改为完全NotLizards 的答案,因为
.unbind()已被弃用。
我可以使用这段代码来移除点击事件,
$('p').unbind('click')
但是,有一些方法可以删除所有事件吗?
在 jquery 中有一个名为 unbindAll 的方法吗?
谢谢
【问题讨论】:
.unbind() 已被弃用。
【讨论】:
$(document).add('*').off();。
$('#ELEMENT_ID').off()。
$(document).add(...) 部分。您不需要节点列表中的文档。如果您只是想删除某个您知道其 ID 的特定元素上的所有事件,那么您可以立即使用$('#ELEMENT_ID').off()(前面没有添加任何内容)。
@jammypeach 关于 on & off 是公认的使用方法是正确的。解除绑定有时最终会产生奇怪的行为(例如,实际上没有正确解除绑定事件)。
要取消绑定正文中的所有元素,找到所有元素并为每个元素关闭点击处理程序(旧的取消绑定是什么):
$("body").find("*").each(function() {
$(this).off("click");
});
另请参阅如何保存您在 this stack overflow question 中关闭的事件。
【讨论】:
从包括文档使用在内的所有元素中删除所有事件绑定:
$(document).off().find("*").off();
【讨论】: