Сделайте я должен отсоединить события в jQuery, когда я удаляю элементы

У меня есть UI с помощью динамических вкладок, таким образом, содержание может быть загружено во вкладку, и затем вкладка может быть закрыта, и содержание удалено из страницы.

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

Что происходит, когда я удаляю эти элементы из страницы? JQuery должен знать?

Кроме того, имеет значение, если я присоединяю событие многократно? Например, на моей вкладке загружаются, я мог бы присоединить событие с помощью селектора класса как $('.submitButton').click(...). Но у меня могли бы уже быть другие открытые вкладки, которым уже присоединили submitButton событие. В этом случае я буду повторно прикреплять то же событие. Есть ли какая-либо проблема с этим?

14
задан fearofawhackplanet 6 July 2010 в 12:45
поделиться

2 ответа

Если вы используете методы jQuery .remove () или .empty () , они очистят все события (и другие данные), которые были назначается с помощью jQuery.

Из документации для remove ():

В дополнение к самим элементам , все связанные события и данные jQuery, связанные с элементами, удаляются.

и для empty ():

Чтобы избежать утечки памяти, jQuery удаляет другие конструкции, такие как обработчики данных и событий, из дочерних элементов перед удалением самих элементов.

Если вы использовали собственные методы удаления API, все эти данные останутся без дела. Так что лучше использовать методы jQuery.

16
ответ дан 1 December 2019 в 13:21
поделиться

Если вы удалите элемент с помощью .remove () , все связанные события и данные jQuery, связанные с этим элементом, будут удалены.

Кроме .detach () , который удалит элемент из DOM, но сохраняет все связанные данные и события в памяти (что полезно, если вы хотите повторно вставить этот элемент позже время)

3
ответ дан 1 December 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: