jquery Использовать on() как live() для элементов, которых на странице ещё нет, но появятся в будущем -- пример динамической

Как известно, live() не рекомендован к использованию в новых версиях JQuery. Чтобы привязывать обработчик к элементам. которые появятся в будущем (будут добавлены с помощью JS уже после того как были выполнены привязки обработчиков событий), привязывайте его ко всему документу:

$(document).on("click", 
    ".dynamicallyCreatedElement", function() {
         console.log('привязалось и работает! ))'); 
});  

Или к родительскому элементу, в котором будут появляться эти ожидаемые объекты (чтобы сузить область контроля):

$('#main-conteiner').on("click", 
    ".dynamicallyCreatedElement", function() {
        console.log('привязалось и работает!');
 });  

Где вместо .dynamicallyCreatedElement следует использовать идентификатор вашего динамически добавляемого элемента, к которому надо привязать обработчик)

По материалам:
stackoverflow.com/questions/10295399/jquery-on-method-does-not-bind-events-like-live-did

vedro-compota's picture

по-идее "живая" привязка более ресурсоёмка (лучше не использовать если динамические объкты не ожидаются), но в конкретных ситуациях без неё бывает просто не обойтись.

_____________
матфак вгу и остальная классика =)