jquery Использовать on() как live() для элементов, которых на странице ещё нет, но появятся в будущем -- пример динамической
Primary tabs
Как известно, 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
- Log in to post comments
- 3932 reads
vedro-compota
Tue, 08/15/2017 - 17:11
Permalink
нужно не всегда
по-идее "живая" привязка более ресурсоёмка (лучше не использовать если динамические объкты не ожидаются), но в конкретных ситуациях без неё бывает просто не обойтись.
_____________
матфак вгу и остальная классика =)