标签: jquery events memory-leaks unbind
在jQuery中,如果我们使用.remove()删除一些元素,则删除与元素关联的所有绑定事件和jQuery数据。
.remove()
但是如果我们用.html()“删除”元素会怎样?
.html()
我们是否需要在更改任何html之前取消绑定所有元素以避免内存泄漏?
答案 0 :(得分:16)
是的,他们将被删除。 jQuery将清理与删除的元素相关的事件等。如果您执行类似$(elm1).html($ elm2.html())
答案 1 :(得分:13)
是的,即使您使用html(),它们也会被删除。 jQuery source code证实了这一点。
html()
答案 2 :(得分:1)
稍微扩展一下:
.empty()
.detach()
.clone()
因此,如果您想要保留听众,请使用.detach()。