我有一个使用动态标签的用户界面,因此可以将内容加载到标签中,然后关闭标签页并从页面中删除内容。
当我将内容加载到选项卡中时,我使用jQuery将大量事件附加到元素。
当我从页面中删除这些元素时会发生什么? jQuery需要知道吗?
另外,如果我多次附加一个事件,这有关系吗?例如,在我的标签加载中,我可能使用类$('.submitButton').click(...)
之类的类选择器附加事件。但是我可能已经打开了其他选项卡,这些选项卡已经附加了submitButton事件。在这种情况下,我将重新附加相同的事件。这有什么问题吗?
答案 0 :(得分:16)
如果使用jQuery方法.remove()
或.empty()
,它们将清除使用jQuery分配的所有事件(和其他数据)。
来自remove()的文档:
除了元素本身之外,还删除了与元素关联的所有绑定事件和jQuery数据。
和空():
为了避免内存泄漏,jQuery会在删除元素本身之前从子元素中删除其他构造(如数据和事件处理程序)。
如果您使用本机API删除方法,那么所有数据都会消失。所以最好使用jQuery方法。
答案 1 :(得分:3)