在jQuery中,如果我们使用.remove()
来删除某个元素,则删除与元素相关的所有绑定事件和jQuery数据。当您使用.html()删除元素时,jQuery中的事件侦听器是否会自动删除?
但是如果我们用.html()
“去除”元素会发生什么?
为了避免内存泄漏,我们是否需要在更改任何html之前解除所有元素的绑定?
在jQuery中,如果我们使用.remove()
来删除某个元素,则删除与元素相关的所有绑定事件和jQuery数据。当您使用.html()删除元素时,jQuery中的事件侦听器是否会自动删除?
但是如果我们用.html()
“去除”元素会发生什么?
为了避免内存泄漏,我们是否需要在更改任何html之前解除所有元素的绑定?
是的,它们将被删除。 jQuery将清理与被删除元素相关的事件等。如果你这样做$(elm1)的.html它会不会复制事件($ elm2.html())
是的,即使您使用html()
,它们也会被删除。 jQuery source code证实了它。
非常感谢Anurag,我知道你是第一个,并且你正在证明你的答案(+1),但是kinghfb需要更多的分数,所以我会将他的答案标记为激励他,希望你能理解。谢谢 ! – Enrique
没问题@Enrique :) – Anurag
无论如何,应该有一个SO徽章来验证您的答案,并链接到源代码:) –