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