Что делать, если события jQuery не срабатывают

Бывает ситуация, когда к примеру событие click (или любое другое) не срабатывает.

Чаще всего это происходит потому что элемент, к которому это событие привязано, создался динамически (его не было на момент загрузки страницы, а потом элемент добавили с помощью скриптов).

Рассмотрим на примере нажатия click. Стандартно это событие в jQuery можно записать так:

$(".myElement").click(function(e){
//что-то делаем
});

Обычно этого достаточно и код будет работать для всех  .myElement, которые были сформированы при создании страницы. Но если добавить новый элемент с классом .myElement, то на него это не распространится. Выход - записать это событие немного иначе, с корневым элементом, который точно будет присутствовать на странице. Мы возьмем для этих целей тег body (но подойдет и любой другой, который не будет создаваться динамически и который в себе будет содержать новый .myElement:

$('body').on('click','.myElement', function(e){
//что-то делаем
});

Этот код сработает для всех элементов на странице. 

Комментарии

Комментариев пока нет, вы можете оставить свой: