2013-05-04 72 views
0

有没有一种方法来检测DOM何时被卸载(销毁/删除/ GCed等)?当DOM被卸载时检测

我有一个全球中心,我订阅了一群听众(使用被动主题)。我需要检测相关DOM何时被销毁,并取消订阅与现在销毁的DOM有关的听众。

+1

您是否在搜索它?那这个呢? https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/unload – elclanrs 2013-05-04 00:48:53

+0

顺便说一句,如果你想检测用户什么时候关闭窗口,你可以使用'window.onbeforeunload' – Orlando 2013-05-04 01:10:11

回答

2

与加载事件一样,存在卸载事件。 https://developer.mozilla.org/en-US/docs/DOM/window.onunload

+2

应该指出的是,有一个非常有限的一组行动,你可以从卸载处理程序并发出ajax调用可能无法正常工作,因为页面上下文可能会在ajax调用取消之前被删除(这似乎因浏览器而异)。 – jfriend00 2013-05-04 01:17:26

1

如果您正在使用jQuery你可以使用remove事件去除DOM:

$("#myDiv").on("remove", function() { 
    //code here 
}) 

香草的jQuery不会触发remove事件。这种行为取决于jQuery UI与jQuery一起加载。而不是jQuery UI,您可以扩展.remove()方法,https://stackoverflow.com/a/18410194/368691

+0

这是真的还是你做它呢?我从来没有见过它,无法找到它的参考,并不能在一个例子中得到它的工作:http://jsfiddle.net/t2Tbb/ – Ian 2013-05-04 01:10:27

+1

@ian看起来像你也需要jquery ui ..我的坏.. http://jsfiddle.net/t2Tbb/2/ – Orlando 2013-05-04 01:15:37

+0

噢好吧,从来没有见过这个berfore! – Ian 2013-05-04 01:17:54

相关问题