JQuery清理事件处理程序

Tje*_*lle 8 javascript jquery

我是一个动作脚本开发人员进入jquery/javascript开发.我有一个关于事件处理程序和绑定/解除绑定的问题.

比方说我有一个带有img元素的div,其中包含一个onerror事件处理程序.如果我用新的替换那个div,我需要删除绑定到img元素的eventhandler.由于img不再在文档中,浏览器是否足够智能删除它还是会导致内存泄漏?

来自actionscript我通常会尝试不断删除旧的事件处理程序.那么在为Web浏览器编写javascript时我需要这样做吗?

事件处理程序添加了 $('imgElement').error(errorFunction);

Nic*_*ver 11

如果您使用jQuery绑定事件,只需.remove()在替换它之前调用旧元素,或者.empty()如果您只想清除它,这两个清理元素及其子元素的事件处理程序,或者.empty()仅仅是儿童.

如果你只是替换它,例如.html(content)泄漏内存,因为这些元素的任何处理程序或数据将留在$.cache对象上.

  • 我不知道.html(内容)会泄漏内存!谢谢! (2认同)