使用.html()删除元素时,jQuery中的事件侦听器是否会自动删除?

使用.html()删除元素时,jQuery中的事件侦听器是否会自动删除?,jquery,events,memory-leaks,unbind,Jquery,Events,Memory Leaks,Unbind,在jQuery中,如果我们使用.remove()删除某些元素,那么所有绑定事件和与元素关联的jQuery数据都将被删除 但是如果我们使用.html()来“删除”元素,会发生什么呢 在更改任何html之前,我们是否需要解除所有元素的绑定以避免内存泄漏?是的,即使使用html(),它们也会被删除。jQuery将确认它。是的,它们将被删除。jQuery将清理与删除的元素相关的事件等。如果您执行类似$(elm1.html($elm2.html())的操作只是为了稍微扩展一下,它将不会复制事件: 、等-

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

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


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

是的,即使使用
html()
,它们也会被删除。jQuery将确认它。

是的,它们将被删除。jQuery将清理与删除的元素相关的事件等。如果您执行类似$(elm1.html($elm2.html())

的操作只是为了稍微扩展一下,它将不会复制事件:

  • 、等-全部删除侦听器
  • 不删除侦听器
  • 具有用于决定是否复制数据/侦听器的参数

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

谢谢Anurag,我知道你是第一个,并且你正在证明你的答案(+1),但kinghfb需要更多的分数,因此我会将他的答案标记为接受,以激励他,我希望你理解。谢谢无论如何,应该有一个SO徽章,用于通过源代码链接验证您的答案:)