Каков наилучший способ обновления моих слушателей событий Javascript после загрузки нового контента на страницу? Я понял, что мой прослушиватель кликов не работал, если я добавил его, прежде чем загружать данные в свой канал. Чтобы исправить эту проблему, я поместил ее в.done callback моего вызова ajax.
$(".likebutton").click(function(){
//function
});
Если я загружаю больше данных в один и тот же канал, слушатель кликов снова добавляется ко всем экземплярам.likebutton, которые были там раньше. Это означает, что иногда моя функция называется 2 или даже 3 раза в зависимости от того, сколько раз я загружал новые данные.
Я знаю, что могу удалить слушателя на всех объектах, а затем добавлять новый каждый раз, но я не уверен, что это лучшая практика.
Предложения?
Предположим, что вы всегда загружаете новое содержимое внутри определенного элемента, например, content
div с идентификатором, вы можете использовать метод on
для делегирования события click для этого элемента.
$('#content').on('click', '.likebutton', function() {
// your code
});
Пример: http://jsfiddle.net/nxpgp/ (обратите внимание, что каждый новый .likebutton
будет отвечать на событие click)