Подтвердить что ты не робот

Запуск сценариев JQuery в загружаемом контенте AJAX

Я использую .load(), чтобы вытащить статические файлы HTML на главную страницу HTML. Сценарии и селекторы, которые я написал, существуют внутри:

$(document).ready(function(){});

Но они не работают с загруженным контентом AJAX. Я читал, что это потому, что селектора, которые я использую, недоступны.

Есть ли лучший способ сделать это? Добавление функции script в window.load также не работает:

$(window).load(function() {});
4b9b3361

Ответ 1

$(document).ajaxComplete(function(){
    // fire when any Ajax requests complete
})

ajaxComplete()

Ответ 2

Существует несколько вариантов:

  • вы можете добавить скрипты инициализации [ $(this).click...] в функцию callback $.load()
  • вы можете использовать $.live(), который создает обработчики даже для динамически загружаемых/созданных объектов.

Подробнее здесь:
callback: http://api.jquery.com/load/ (обратите внимание на функцию "complete()" ) bind: http://api.jquery.com/live/

Изменить. Моя ошибка: live(), а не bind(), спасибо ребятам

Ответ 3

Вы можете связать события с динамически загружаемым контентом через jQuery $.live().

Из jQuery http://api.jquery.com/live/:

Прикрепите обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем.

Ответ 4

Загрузка jQuery принимает необязательный аргумент функции обратного вызова, который вы можете использовать для любой настройки, необходимой вам после загрузки вашего ajax-ed контента