Jquery клик по элементу
Автор Александр Опарин задал вопрос в разделе Другие языки и технологии
jQuery - события не ловятся после добавления новых элементов. Что происходит? Как исправить? и получил лучший ответ
Ответ от Ёергей Одиноков[гуру]
Напишите вместо $('#cats li a').click(callback) строку $(document).on('click', '#cats li a', callback) и все будет работать.
В данном случае мы добавляем обработчик не к каждому элементу категории, а ко всему документу. Событие, вызванное в ссылке, будет подниматься наверх, вначале к элементу li, потом к #cats, потом его родителю и т. д. до документа, это называется event bubbling. Однако свойство target у события будет неизменно содержать ссылку на элемент, в котором оно возникло.
Указанная функция добавляет специфический обработчик к документу, в котором будет производиться дополнительная проверка. И, если event.target будет попадать под селектор '#cats li a', то будет вызван ассоциированный с этим callback (который мы указали при добавлении обработчика) . Такой метод, в котором обработчик вешается на родительский, а не исходный элемент, называется делегированием событий (event delegation).
Чтобы не загромождать документ ненужными обработчиками, можно добавить обработчик к элементу 'cats':
$('#cats').on('click', 'li a', callback). Механизмы будут теми же.
Пример: ссылка
Александр Опарин
Профи
(720)
Всё, нашёл!.. Простите, что побеспокоил.
дело в том что события вешаются сразу после загрузки страницы и больше не обновляются. Вновьсозданные элементы нужно ручками добавлять к обработчикам событий
А потому что jQuery не знает об этих новых объектах. Придётся пройтись по добавляемому дереву, и всем, кому требуется, сделать bind('событие', обработчик) ;
jquery - поиск элемента. Как найти последний див в строке и поменять класс соседнему диву?
гугли .next()
api.jquery.com/next/
Dr. Dick
Просветленный
(43003)
подробнее...
Проблема с jquery, на кнопку делаю toggle и эта кнопка пропадает, почему? если применяю hover все ок, но мне надо toggle
$(element).toggle() - пропадает элемент. Так и должно работать.
Вот так:
подробнее...
Как прикрутить лайтбокс к динамически создаваемым элементам jQuery?
Как вариант - переопределить .load так чтобы новая функция добавляла ещё 1 обработчик к
подробнее...
Выпадающее меню в Вордпресс
1. Заходишь в админку вордпресса, если ничего не менял, то
адрессайта. ру/вп-админ
(майл
подробнее...
Раздвижное вертикальное меню CSS
Наталья, обычно не делают раскрытие такого меню по onmouseover по простой причине - юзер случайно
подробнее...