我有一个UI使用动态选项卡,所以可以将内容加载到一个选项卡,然后该选项卡可以关闭,内容从页面中删除.
当我将内容加载到选项卡中时,我会使用jQuery将许多事件附加到元素.
当我从页面中删除这些元素时会发生什么? jQuery需要知道吗?
此外,如果我多次附加事件,是否重要?例如,在我的选项卡加载中,我可能会使用类选择器(如$(‘.submitButton’))附加一个事件.点击(…).但是我可能已经打开了其他标签,已经附带了submitButton事件.在这种情况下,我将重新附加相同的事件.这有什么问题吗?
解决方法
如果您使用jQuery方法.remove()或.empty(),它们将清理所有分配给jQuery的事件(和其他数据).
> http://api.jquery.com/remove/
> http://api.jquery.com/empty/
从文件remove():
In addition to the elements themselves,all bound events and jQuery data associated with the elements are removed.
对于空():
To avoid memory leaks,jQuery removes other constructs such as data and event handlers from the child elements before removing the elements themselves.