jQuery的replaceWith()还会删除事件处理程序吗?

前端之家收集整理的这篇文章主要介绍了jQuery的replaceWith()还会删除事件处理程序吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我浏览了jQuery文档以获得这个简单问题的答案:

Does replaceWith() call remove() or detach() under the hood?

我没有正式文件的运气;它被明确定义为删除节点.但测试显示内存泄漏.

解决方法

看看jQuery(2.1.1)的源代码,你提出两个不同的问题.

> jQuery的replaceWith()是否删除事件处理程序?

是. jQuery calls cleanData(),它是删除元素上的所有数据的内部方法.由于jQuery事件处理程序存储在元素数据中,所以它们也将被清理.

cleanData()还可以通过调用jQuery.removeEvent()(另一种内部方法)来删除附加到元素的事件处理程序,该元素触发存储在元素数据中的所有事件处理程序的执行.
> replaceWith()调用remove()或detach()在引擎盖下?

调用remove()的唯一时间是否没有提供replaceWith()的参数; jQuery对待它就像你调用remove()而不是replaceWith();

TL; DR:jQuery将为您清理所有内容,因此不应有内存泄漏的风险.

猜你在找的jQuery相关文章