JQuery Mobile, DOM и события Unbindings - PullRequest
3 голосов
/ 28 февраля 2012

В настоящее время я работаю с jQuery mobile и быстро задаю вопрос о том, как вообще работает DOM. В настоящее время я привязываю события к элементам на странице, которая была загружена через AJAX (страница внедряется в DOM).

Когда страница перемещается, в соответствии с jQuery Mobile документами , jQuery mobile удаляет страницу из DOM.

Нужно ли беспокоиться о том, чтобы связать события jQuery с элементами, которых больше не существует в DOM? Когда я изменяю страницу через ajax, я уверен, что GC очистит мои привязки?

TLDR : Когда элементы, которые были связаны с помощью jQuery [$(...).on("click" ...);], удаляются из DOM, нужно ли нам беспокоиться об отмене привязки событий? Или javascript автоматически знает, как удалить эти события?

1 Ответ

2 голосов
/ 28 февраля 2012

Когда вы меняете страницы, браузер очищает все с предыдущей страницы - вам не нужно об этом беспокоиться.

В jQuery, если вы используете метод jQuery .remove(), чтобы что-то извлечьDOM, тогда jQuery очистит для вас.Если вы не используете .remove() и не удаляете элемент DOM вручную, возможно, что некоторое состояние jQuery не будет очищено должным образом (например, информация .data()).

...