JQuery..load () не даст ответ / статус - PullRequest
2 голосов
/ 17 января 2012
var destino = '#myContainer';

var file = 'my-file.html'; //file exists in folder.
var seccion = 'myTarget';    //
var nivel   = 1;      // #myTarget_1 exists in document


$('.load').show();
console.log('before');
$(destino).load('/'+file+' #'+seccion+'_'+nivel, function(response, status, xhr){
    $('.load').hide();
    console.log(response);
    console.log(status);
}
console.log('done');

вывод журнала:

before
done

Почему возможно, что это ничего не возвращает?Нет ошибок или содержания.Могу ли я как-то отменить это, чтобы получить ошибку, если она есть?

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Используйте .get() вместо .load().Как я понял, функция .load() вставляет указанный результат непосредственно в определенный узел.Функция обратного вызова не требуется.

Пример загрузки:

$('#result').load('ajax/test.html#whatever');

Идентификатор содержимого # независимо от того, что на этой странице будет вставлено в # результат текущей страницы.


Пример получения:

var url = '/' + file;
$.get(url , function(data) {
    $('.load').hide();
    console.log($(data).find('#' + seccion + '_' + nivel));
});
1 голос
/ 17 января 2012

Основываясь на комментариях выше, элемент, по которому вы звоните $.load(), имеет динамическое имя. Поэтому перед загрузкой убедитесь, что элемент существует. например,

if($(destino)) {
   $(destino).load();
} else {
   console.log(destino + ' does not exist');
}

Альтернатива состоит в том, чтобы сделать, как сказал @Armin, и использовать $.get(), а затем $.appendTo() в качестве успешного обратного вызова.

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