Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除元素后,jquery事件处理程序会发生什么情况?_Javascript_Jquery - Fatal编程技术网

Javascript 删除元素后,jquery事件处理程序会发生什么情况?

Javascript 删除元素后,jquery事件处理程序会发生什么情况?,javascript,jquery,Javascript,Jquery,如果我在一个DIV上注册jquery事件处理程序,那么删除DIV后会发生什么?如果我经常这样做(单页应用程序)-我会遇到内存泄漏吗 HTML: 是否必须手动删除事件处理程序?根据jQuery文档中的.remove(): 与.empty()类似,.remove()方法从DOM中取出元素。如果要删除元素本身以及其中的所有内容,请使用.remove()除了元素本身,所有与元素关联的绑定事件和jQuery数据都将被删除。要删除元素而不删除数据和事件,请改用.detach() 参考资料: 我已经强调了文章

如果我在一个DIV上注册jquery事件处理程序,那么删除DIV后会发生什么?如果我经常这样做(单页应用程序)-我会遇到内存泄漏吗

HTML:


是否必须手动删除事件处理程序?

根据jQuery文档中的
.remove()

.empty()
类似,
.remove()
方法从DOM中取出元素。如果要删除元素本身以及其中的所有内容,请使用.remove()除了元素本身,所有与元素关联的绑定事件和jQuery数据都将被删除。要删除元素而不删除数据和事件,请改用.detach()

参考资料:


我已经强调了文章中回答你问题的部分。您可以在链接参考页的第一段中找到这段文字。

我怀疑jQuery社区中是否已经修复了这段文字。如果使用jQuery删除元素,则会事先删除所有关联的数据和事件处理程序,以防止内存泄漏。这与jQuery添加事件的方式不同。事件处理程序泄漏在ie6和ie7中的某些绑定中主要是一个问题。
<div id="elm12345"></div>
$('#elm12345').on(...);
...
$('#elm12345').remove();