jquery 空函数和事件处理程序

标签 jquery

在“empty”函数的jquery文档中(http://api.jquery.com/empty/)有以下声明:

"To avoid memory leaks, jQuery removes other constructs such as data and event handlers
from the child elements before removing the elements themselves."

文本显示:“... jQuery 从 !C H I L D! 元素中删除事件处理程序...”。但我希望事件处理程序也从 div 标签中删除 ($("#mydiv").empty)。我知道有“删除”功能,但我的目的是不删除 div 标签。完成此任务的最佳方法是什么?

另一件事是:
当他们说“删除事件处理程序”时。他们只删除用“bind”创建的构造还是也删除用“delegate”创建的构造?

提前非常感谢

最佳答案

要从元素中删除所有绑定(bind)的事件处理程序,您可以将特殊值 "*" 传递给 off()方法:

$("#mydiv").empty().off("*");

当文档说删除事件处理程序时,它仅涉及绑定(bind)事件处理程序,而不是委托(delegate)事件处理程序,因为它们绑定(bind)到不受删除影响的祖先元素(或文档本身)。

如果稍后恢复删除的元素,这允许委托(delegate)处理程序继续按预期工作。

关于jquery 空函数和事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609053/

相关文章:

jquery - .live() 与 .bind()

javascript - 视频背景不起作用(html、css、js)

jQuery onClick 导航选项卡 - 需要拉入正文内容

jquery - 简单的 jQuery 和 CSS 导航在刷新时随机无法正常工作...所有浏览器

JQuery - 仅选择当前表中的所有复选框

jquery - 增加重复元素的最高值

javascript - SVG 文件在应用 css 样式之前在页面加载时闪烁

javascript - 我将如何在 jquery 中检测触摸屏并隐藏一个 div

javascript - JSPDF 保存在本地系统上,但我想将它保存在服务器上

javascript - jquery 无法在多级依赖中工作?