Что делать, если события jQuery не срабатывают
Бывает ситуация, когда к примеру событие click (или любое другое) не срабатывает.
Чаще всего это происходит потому что элемент, к которому это событие привязано, создался динамически (его не было на момент загрузки страницы, а потом элемент добавили с помощью скриптов).
Рассмотрим на примере нажатия click. Стандартно это событие в jQuery можно записать так:
$(".myElement").click(function(e){
//что-то делаем
});
Обычно этого достаточно и код будет работать для всех .myElement, которые были сформированы при создании страницы. Но если добавить новый элемент с классом .myElement, то на него это не распространится. Выход - записать это событие немного иначе, с корневым элементом, который точно будет присутствовать на странице. Мы возьмем для этих целей тег body (но подойдет и любой другой, который не будет создаваться динамически и который в себе будет содержать новый .myElement:
$('body').on('click','.myElement', function(e){
//что-то делаем
});
Этот код сработает для всех элементов на странице.
Комментарии