Всем, привет!
Есть задача удалить элементы и создать другие. Как к тем, которые, необходимо удалить так и у новых элементов есть привязанные .click() и .hover() события.
Стоит ли удалять эти обработчики событий (тем же .unbind('click') например) перед удалением старых элементов и будут ли они сидеть в памяти браузера и таким образом мешать или стоит просто использовать .remove() и все остальное само удалится?
P.S. - "по возможному дубликату" Ответ на мой вопрос полностью удовлетворил меня, а в ответе возможного дубликата не было этого, так что никакой это не дубликат, а только похожий и не более того. Мне явно виднее какой ответ для меня был полезнее. Спасибо.
Если вы используете jQuery - то нужно запомнить что метод .remove() - удаляет сам элемент, все что находится внутри него, все данные которые связаны с этим элементом, а также все обработчики событий (click, hover, ...)
Если же нужно удалить элемент со страницы без потери всего вышеперечисленного, то следует использовать метод .detach(). Это может понадобиться, например, если необходимо переместить элемент в другое место документа.
Если вы хотите скопировать существующий элемент, а также все его данные и поведение, то используйте метод .clone(true, true), где первый true означает копировать данные и обработчики, второй true - означает копировать данные и обработчики у вложенных элементов.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости