我试图弄清楚如何执行一些js代码时,一个元素从页面删除:
jQuery('#some-element').remove(); // remove some element from the page
/* need to figure out how to independently detect the above happened */
有没有专门的活动,比如:
jQuery('#some-element').onremoval( function() {
// do post-mortem stuff here
});
挂钩.remove()并不是最好的处理方法,因为有很多方法可以从页面中删除元素(例如,通过使用.html(), .replace()等)。
为了防止各种内存泄漏危险,jQuery将在内部尝试为每个被删除的元素调用jQuery. cleandata()函数,而不管使用什么方法来删除它。
查看这个答案了解更多细节:javascript内存泄漏
所以,为了得到最好的结果,你应该钩子cleanData函数,这正是jquery.event.destroyed插件所做的:
http://v3.javascriptmvc.com/jquery/dist/jquery.event.destroyed.js