Події javascript після динамічного додавання контенту - stack overflow російською

На дане питання вже відповіли:

Підкажіть зручний спосіб підвісити події на елемент після його динамічного додавання. Наприклад, після завантаження контенту через ajax.

Мені потрібно щоб відпрацьовував схожий на цей код: $ ( '. Colorbox'). Colorbox ();

Тобто мої події я прив'язую через $ (document) .on (). тому вони відпрацьовують. Події сторонніх плагінів реалізовані інакше, а тому не виконуються після динамічного завантаження контенту.

На даний момент використовую $ (document) .ajaxSuccess () для прив'язки подій сторонніх плагінів після завантаження контенту за допомогою ajax.

Мене цікавить, чи є більш елегантне рішення даної проблеми.

З таким запитанням задавали раніше і на нього вже отримано відповідь. Якщо представлені відповіді не є вичерпними, будь ласка, задайте нове питання.

Є кілька варіантів, як можна навісити подія на динамічний елемент.

Перше, це навішування обробника по якійсь події, тобто .:

Ще можна погратися з подіями DOM: DOM events.

jQuery працює з елементами, які були на сторінці на момент ініціалізації коду.

Якщо додаються нові елементи - за допомогою ajax'а або функцій типу append () - то події не зачіпають їх.

Як же працювати з новими створеними елементами DOM?

Виявляється для динамічних елементів використовується делегована обробка подій.

Якщо коротко, то сенс делегування в тому, що обробники "навішуються" нема на відсутні в dom елементи, а на існуючий батьківський об'єкт.

відповідь дан 26 Вересня '15 о 20:25

Спробуйте безпосередньо викликати:

jquery live вже застарів.
Краще використовувати on

jquery live ( 'click', callback) або on ( 'click', callback)

Схожі статті