Лучшие практики для обновления слушателей после загрузки Ajax

0

Каков наилучший способ обновления моих слушателей событий Javascript после загрузки нового контента на страницу? Я понял, что мой прослушиватель кликов не работал, если я добавил его, прежде чем загружать данные в свой канал. Чтобы исправить эту проблему, я поместил ее в.done callback моего вызова ajax.

$(".likebutton").click(function(){
    //function
});

Если я загружаю больше данных в один и тот же канал, слушатель кликов снова добавляется ко всем экземплярам.likebutton, которые были там раньше. Это означает, что иногда моя функция называется 2 или даже 3 раза в зависимости от того, сколько раз я загружал новые данные.

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

Предложения?

Теги:

1 ответ

7
Лучший ответ

Предположим, что вы всегда загружаете новое содержимое внутри определенного элемента, например, content div с идентификатором, вы можете использовать метод on для делегирования события click для этого элемента.

$('#content').on('click', '.likebutton', function() {
    // your code
});

Пример: http://jsfiddle.net/nxpgp/ (обратите внимание, что каждый новый .likebutton будет отвечать на событие click)

  • 0
    ВАУ! Я никогда раньше не видел, чтобы это было сделано. Очень хороший трюк Гильерме. Я думаю, что буду использовать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню