Мне показалось странным, что функция .on()
запускает событие только один раз/два раза при загрузке ajax.Функция Jquery ON срабатывает только один или два раза только при нагрузке ajax
Вот пример кода:
$(document).on('click', '.cbxCheckAll', function(e) {
alert(this.checked);
$(this).parents('table').find('input.cbxDelete:checkbox').attr('checked', this.checked);
});
Сценарий: Так в основном, у меня есть выпадающий список, который имеет список пользователей. После выбора пользователя в раскрывающемся списке он мгновенно загружает информацию выбранного пользователя в div через ajax. Затем в этом div у меня есть несколько флажков с опцией «выбрать все».
После нажатия кнопки «Выбрать все», все флажки были выбраны. Еще один щелчок, он снял флажки. Ну, это сработало. Но когда я снова нажимаю (третий раз), он больше не работает. Похоже, что он работает только во втором клике.
Как вы можете заметить, у меня есть alert()
, который отображает значение флажка «Выбрать все». Кажется, что огонь срабатывает каждый раз, когда я нажимаю на него (3-й, 4-й и т. Д.), Но проверка/снятие флажка - нет.
Я только недавно обновил версию JQuery до последней версии (1.9). Я использовал ver (1.7) с функцией .live()
и изменил его на .on()
, так как .live()
был удален последним.
Заранее благодарен!
Обязательно используйте [ 'console.log()'] (http://stackoverflow.com/questions/4743730/what-is-console-log-and-how-do-i-use- it) вместо 'alert()' – Dom
как указано @Dom, предупреждение содержит поток, console.log позволяет ему продолжать работу. –
(возможно), не связанный с вашей проблемой, но «.parents ('table')" выбирает EVERY table ancestor этого элемента. Если вы попробуете «.closest (« table »), вы выберете только ближайшего предка« таблица ». – DoXicK