Функция обратного вызова JQuery .load () - PullRequest
17 голосов
/ 20 октября 2010

Я видел много вопросов и решений таких проблем, но у меня ничего не получалось.У меня есть это:

function() {
    $("#bdiv").load("bosses.php #icc10n",function(){
        return $("#bdiv").html();
    });
}

Но это не работает.Чтобы уточнить, я хочу загрузить содержимое в #bdiv, а затем вернуть содержимое #bdiv.Но похоже, что $("#bdiv").html() возвращается до загрузки контента, хотя я поместил его в функцию обратного вызова.

Ответы [ 3 ]

42 голосов
/ 20 октября 2010
$("#bdiv").load("bosses.php #icc10n",function(data){
    // use the data param
    // e.g. $(data).find('#icc10n')
});
1 голос
/ 31 августа 2011

Насколько я знаю, вы не можете сделать оператор return в функции обратного вызова метода $ .ajax (), $ .post (), $ .get () и т. Д.Однако вы можете сохранить значение «data» в переменной, объявленной вне функции, а затем установить значение этой переменной при выполнении функции обратного вызова.И есть множество других вариантов.

0 голосов
/ 20 октября 2010

Вы не можете этого сделать.

AJAX - асинхронный , что означает, что ваша функция вернется до того, как сервер отправит ответ. Вам нужно передать значение вашему вызывающему абоненту с помощью обратного вызова, как это делает $.load.

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