Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Удаление элементов и обработчики событий (https://javascript.ru/forum/jquery/48050-udalenie-ehlementov-i-obrabotchiki-sobytijj.html)

xmlns 17.06.2014 21:31

Удаление элементов и обработчики событий
 
Добрый день.
Подскажите, плз, как лучше поступить.
Есть на сервере скрипт, который генерирует html. Это html содержит кнопки, которые должны отрабатываться через click(). При этом html может удаляться со страницы (как угодно пользователю), а потом снова (из кеша) вставляться обратно.
Так, как грамотно написать обработчики?
1. Один раз на странице сделать такое:
$("body").on("click", "#someButton", function() {...});

2. или при каждой вставке html писать так:
$("#someButton").click(function() {...});
а когда этот html удаляется со страницы, то делать unbind()?

krasovsky 18.06.2014 09:40

Если навесить обработчик методом click - то при удалении unbind Делать не надо, его делают только когда хтмл остается,но обрабатывать событие не нужно. Но при вставке надо будет снова вешать.

Тут много вариантов и тонкостей - если у тебя все корректо работает с методом on то лучше его, т.к. навесил 1 раз, меньше кода, меньше потребления ресурсов.
Главное в делегации событий - быть уверенным в том что ты делегирешь единожды. Иначе - непонятно откуда двойные тройные срабатывания, и тд.


Часовой пояс GMT +3, время: 15:36.