2013-05-04 4 views
0

Есть ли способ обнаружить, когда DOM был выгружен (уничтожен/удален/GCed и т. Д.)?Обнаруживать, когда DOM разгружается

У меня есть глобальный центр, где я подписываюсь на кучу слушателей (используя реактивный предмет). Мне нужно обнаружить, когда соответствующий DOM был уничтожен и отменил подписку на слушателей, которые относятся к теперь уничтоженной DOM.

+1

Вы искали его? Как насчет этого? https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/unload – elclanrs

+0

btw, если вы хотите обнаружить, когда пользователь закрывает окно, вы можете использовать 'window.onbeforeunload' – Orlando

ответ

2

Как и событие загрузки, есть событие разгрузки. https://developer.mozilla.org/en-US/docs/DOM/window.onunload

+2

Следует отметить, что существует очень ограниченный набор действий, которые вы можете предпринять из обработчика разгрузки и запуска вызова ajax может не работать, поскольку контекст страницы может быть удален до выхода ajax-кода (это, по-видимому, зависит от браузера). – jfriend00

1

При удалении DOM с помощью JQuery вы можете использовать remove событие:

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

Vanilla Jquery не вызывает remove событие. Это зависит от jQuery UI, загружаемого вместе с jQuery. Вместо пользовательского интерфейса jQuery вы можете расширить метод .remove(), https://stackoverflow.com/a/18410194/368691.

+0

Действительно ли это или вы сделали это? Я никогда не видел его, не могу найти ссылку на него и не могу заставить его работать в примере: http://jsfiddle.net/t2Tbb/ – Ian

+1

@ian похоже, что вам нужен jquery ui. мой плохой. http://jsfiddle.net/t2Tbb/2/ – Orlando

+0

Ооо, хорошо, никогда не видел этого раньше! – Ian

Смежные вопросы