gpt4 book ai didi

javascript - jQuery empty() 、 click() 和内存管理

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:46 25 4
gpt4 key购买 nike

只是想知道从内存的 Angular 来看这是如何管理的。

假设我有这个 HTML 页面。

<div id="container">
<div id="someID"></div>
<div>

和以下 jQuery 代码:

$("#someID").click(function(){
//do something
});

现在在我脚本的某处我需要清空(清除)#container 中的所有内容:

$("#container").empty();

这会自动删除/解除绑定(bind)点击事件,还是我必须自己做?

这是特定于浏览器的东西吗?

最佳答案

是的,.empty()方法取消绑定(bind)处理程序,并清除 jQuery.cache 中嵌套在 #container 中的所有元素的所有其他数据。

jQuery 仅将单个(通用)处理程序绑定(bind)到一个元素。所有其他处理程序和数据都存储在 jQuery.cache 中。每个元素的数据都由 jQuery 直接放在 DOM 节点上的序列号交叉引用。

所以这是一个 jQuery 特定的系统。唯一特定于浏览器的问题是 jQuery 如何绑定(bind)通用处理程序,而 jQuery 也负责解除绑定(bind)。


来自文档:

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

关于javascript - jQuery empty() 、 click() 和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com