слушатель jQuery не “слушает” события на элементах DOM, динамично созданных [копируют]

6
задан Luca 23 November 2012 в 11:04
поделиться

3 ответа

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

РЕДАКТИРОВАТЬ: начиная с jQuery 1.7 рекомендуется использовать функцию .on () , которая заменяет .bind () , .live () и .delegate () , предоставляя все функции, необходимые для присоединения обработчиков событий.

14
ответ дан 8 December 2019 в 12:19
поделиться

Конечно.

Динамический прослушиватель не является динамическим.

$('.delete').click(function() {

подключает прослушивателя ко всем существующим элементам.

При добавлении другого элемента необходимо повторно запустить его, чтобы убедиться, что новые элементы подключены к тому же обработчику.

По сути, новые элементы не прослушиваются, потому что вы не прикрепляете к ним новые обработчики ;)

0
ответ дан 8 December 2019 в 12:19
поделиться

Да, проверьте функцию JQuery Live. Также не забывайте привязывать и отвязывать события. были проблемы, когда ссылка привязывалась каждый раз, когда она создавалась, но поскольку страница не перезагружалась, ссылка имела 5 или 6 событий клика, привязанных к ней, и это вызывало проблемы. просто пришлось отвязать события от ссылки.

1
ответ дан 8 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: