16

在 jQuery 中,如果我们.remove()用于删除某些元素,则所有与元素关联的绑定事件和 jQuery 数据都将被删除。

但是如果我们用 来“删除”元素会发生什么.html()

我们是否需要在更改任何 html 之前取消绑定所有元素以避免内存泄漏?

4

3 回答 3

16

是的,它们将被删除。jQuery 将清理与已删除元素相关的事件等。如果您执行 $(elm1).html($elm2.html()) 之类的操作,它不会复制事件

于 2011-09-25T23:06:21.807 回答
13

是的,即使您使用html(). jQuery源代码证实了这一点。

于 2011-09-25T23:01:37.833 回答
1

稍微扩展一下:

因此,如果您想留住听众,请使用.detach().

于 2016-08-12T02:02:02.300 回答