Удаление обработчиков событий DOM в длительной сессии браузера - PullRequest
0 голосов
/ 14 мая 2010

У меня есть интерфейс браузера со списком ul # контактов слева и панелью свойств div # contact (электронная почта, телефон) справа. Щелкните контакт в списке, и мое приложение отправит запрос XHR, чтобы получить HTML-фрагмент свойства контакта и обновить div # contact.innerHTML.

Каждый фрагмент контакта имеет ссылку «Редактировать контакт». С помощью JS я постепенно обновляю эту связь с помощью прослушивателя событий, который выполняет запрос XHR, чтобы заменить панель статических свойств формой редактирования на месте. Это может происходить много раз за один сеанс браузера.

Как мне очистить прослушиватель событий "Изменить контакт"? Нужно ли удалять его вручную, прежде чем форма перезапишет панель свойств? Или прослушиватель событий очищается автоматически, когда содержимое div # contact (и узел, который я слушаю) перезаписывается?

FWIW, я все еще считаю IE6 частью моего целевого рынка.

1 Ответ

2 голосов
/ 14 мая 2010

Вы бы сначала отсоединили своих слушателей, да. Однако самое простое - не подключаться к ссылке напрямую, а использовать делегирование события . Если вы используете jQuery, он становится еще проще с помощью метода live .

...