jQuery не может получить доступ к элементам, загруженным через AJAX - PullRequest
2 голосов
/ 04 июня 2010

У меня есть небольшое приложение, написанное на PHP.Внешний интерфейс использует JQuery и AJAX.В какой-то момент jQuery загружает некоторый контент через AJAX.Проблема в том, что он не может получить доступ ни к одному из загруженных элементов.Кто-нибудь знает почему?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

@ Райан, в вашем jQuery вы пытаетесь получить доступ к элементам как к свежим элементам или ожидаете, что события уже будут привязаны к элементам?

Я спрашиваю, потому что, если вы говорите, что диапазон, к которому прикреплено событие click, при загрузке нового, у нового диапазона еще не будет события click. вам нужно будет связать один или использовать, я думаю, ключевое слово .live, чтобы всегда иметь промежутки, даже созданные позже, привязки к одним и тем же событиям.

Было бы полезно, если бы у вас был небольшой образец вашего html до, после и jquery, который вы используете, чтобы мы могли увидеть и отладить для вас.

1 голос
/ 04 июня 2010

Javascript обычно является синхронным, но вызовы AJAX по умолчанию являются асинхронными.

В результате вы пытаетесь получить доступ к данным, которые были возвращены и добавлены в DOM непосредственно после вызова AJAX, вероятно, что этот код выполнялся до получения ответа AJAX. Таким образом, кажется, что данные недоступны.

Решение состоит в том, чтобы выполнить ваши манипуляции в обратном вызове success для вызова AJAX.

$.ajax({
    url: "some/path/to/data",
    success: function( data ) {
        // Add returned data to DOM
        //   and manipulate data as needed
    }
});

// Can't access returned data here because this code
//    has likely executed before the response was returned.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...