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

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

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

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

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

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

4 ответа

Решение
$(document).ajaxComplete(function(){
    // fire when any Ajax requests complete
})

ajaxComplete()

Есть несколько вариантов:

  1. Вы можете добавить сценарии инициализации [ $(this).click... ] в callback функция $.load()
  2. ты можешь использовать $.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.

Другие вопросы по тегам