Запуск сценариев JQuery для загруженного содержимого AJAX - PullRequest
22 голосов
/ 19 ноября 2010

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

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

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

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

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

Ответы [ 4 ]

65 голосов
/ 19 ноября 2010
$(document).ajaxComplete(function(){
    // fire when any Ajax requests complete
})

ajaxComplete ()

3 голосов
/ 19 ноября 2010

Существует более одной опции:

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

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

Редактировать : Моя ошибка была live(), а не bind(), спасибо, ребята

1 голос
/ 19 ноября 2010

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

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

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

0 голосов
/ 19 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...