javascript - 从已删除的 DOM 元素中分离 jQuery 监听器

标签 javascript jquery dom listener

删除 ID 为 #foo 的 DOM 元素是否会分离所有引用该 ID 的 jQuery 监听器?例如,如果我在 $('#foo #bar') 上有一个监听器,它是否也会自动删除? (我正在使用 elem.parentNode.removeChild(elem) 方法删除元素。)

如果我必须手动清理,是否使用 jQuery .off() 方法,如 $('#foo').off() 也会分离所有监听器我使用 $('#foo #bar').on('click', myFunction) 附加了它,还是只是分离?

最佳答案

Does deleting a DOM element with the id #foo detach all jquery listeners that reference that id?

如果您使用 jQuery 来执行它,它会执行此操作,例如:

$("#foo").remove();

jQuery 会为您处理清理工作。来自 the documentation :

In addition to the elements themselves, all bound events and jQuery data associated with the elements are removed.

(我的重点)

稍后,在示例删除 <div class="hello"> 之后:

If we had any number of nested elements inside <div class="hello">, they would be removed, too. Other jQuery constructs such as data or event handlers are erased as well.

(我的重点)

关于javascript - 从已删除的 DOM 元素中分离 jQuery 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50913782/

相关文章:

javascript - 在测试 spy 的上下文中, stub 和模拟之间有什么区别? ( Jasmine )

javascript - 我认为我没有正确有效地实现和使用可读流?

javascript - Web Crawler - 返回要在下一个函数中使用的数组

javascript - jquery-steps:如何防止页面滚动到顶部?

javascript - 获取元素的内容而不在jQuery中转义

javascript - 如何将叠加图像添加到 SIMILE 展览 map View ?

javascript - 使用 window.onerror 报告客户端错误的最佳实践?

javascript - div 内容更改后再次运行 JavaScript

Javascript - 表单选择元素在新窗口中打开 url 并提交表单

javascript - DOM 属性更改时触发事件