Подтвердить что ты не робот

Как использовать Jquery document.on() для элементов, которые втягиваются через Ajax?

У меня есть страница оболочки JQuery Mobile, в которой я загружаю форму в Ajax. У формы есть некоторые флажки, с которыми мне нужно привязываться.

Как ни странно, я могу заставить его работать, установив прослушиватель прямо на кнопку следующим образом:

$('input[name="ohneiln"]').on('change', function() {
   alert("hello");
   });

Но когда я пытаюсь установить слушателя на $(document) и делегировать его в checkbox, слушатель никогда не срабатывает:

$(document).on('change', 'input[name="ohneiln"]', function() {
   alert("hello");
});

Вопрос:
Каков правильный способ привязки события для "динамических" элементов, загружаемых через Ajax с помощью $(document).on()? Разве это невозможно для событий change или почему я сталкиваюсь с проблемами?

Спасибо за помощь!

4b9b3361

Ответ 1

Способ работы .on() работает в соответствии с тем, как вы его используете. В первом примере метод .on() ведет себя аналогично bind и будет работать только с уже существующими элементами.

Второй пример ведет себя как .live() или delegate() разными способами. И будет работать для элементов, которые будут добавлены позже.

Прочтите документы для подробного объяснения http://api.jquery.com/on/