【发布时间】:2011-09-25 23:00:08
【问题描述】:
在 jQuery 中,如果我们使用 .remove() 来删除某些元素,那么所有与元素关联的绑定事件和 jQuery 数据都会被删除。
但是如果我们“删除”带有.html() 的元素会发生什么?
我们是否需要在更改任何 html 之前取消绑定所有元素以避免内存泄漏?
【问题讨论】:
标签: jquery events memory-leaks unbind
在 jQuery 中,如果我们使用 .remove() 来删除某些元素,那么所有与元素关联的绑定事件和 jQuery 数据都会被删除。
但是如果我们“删除”带有.html() 的元素会发生什么?
我们是否需要在更改任何 html 之前取消绑定所有元素以避免内存泄漏?
【问题讨论】:
标签: jquery events memory-leaks unbind
是的,它们将被删除。 jQuery 将清理与已删除元素相关的事件等。如果您执行 $(elm1).html($elm2.html()) 之类的操作,它不会复制事件
【讨论】:
是的,即使您使用 html(),它们也会被删除。 jQuery source code 确认了这一点。
【讨论】: