Запуск сценариев JQuery для загруженного содержимого AJAX
Я использую.load(), чтобы вытянуть статические HTML-файлы на мою главную HTML-страницу. Сценарии и селекторы, которые я написал, существуют в:
$(document).ready(function(){});
Но они не работают с загруженным контентом AJAX. Я читал, что это потому, что селекторы, которые я использую, недоступны.
Есть лучший способ сделать это? Добавление скрипта в функцию window.load также не работает:
$(window).load(function() {});
4 ответа
$(document).ajaxComplete(function(){
// fire when any Ajax requests complete
})
Есть несколько вариантов:
- Вы можете добавить сценарии инициализации [
$(this).click...
] вcallback
функция$.load()
- ты можешь использовать
$.live()
, который создает обработчики даже для динамически загружаемых / создаваемых объектов.
Больше здесь:
обратный вызов: http://api.jquery.com/load/ (обратите внимание наcomplete()
"функция)
связать: http://api.jquery.com/live/
Редактировать: моя ошибка, это было live()
не bind()
, Спасибо вам, ребята
Вы можете привязать события к динамически загружаемому контенту с помощью jQuery's $.live()
,
Из jQuery http://api.jquery.com/live/:
Прикрепите обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем.
Загрузка jQuery принимает необязательный аргумент функции обратного вызова, который вы можете использовать для выполнения любых необходимых вам настроек ПОСЛЕ загрузки содержимого ajax-ed.