Я имею
// Ajax setup
$.ajaxSetup({
beforeSend: function() {
$('#general-ajax-load ').fadeIn();
},
complete: function() {
$('#general-ajax-load ').fadeOut();
}
});
на странице загружаются для установки загружающейся анимации для всех моих вызовов ajax. Это работает прекрасное, за исключением загрузки () вызовы. Для загрузок только инициирован beforeSend, и завершенный никогда не называется, Который заканчивается с показом анимации который никогда dissapears.
Какая-либо идея?
Добавление Успех устранил проблему, спасибо (могу поклясться, что пробовал это раньше)
$.ajaxSetup({
beforeSend: function() {
$('#general-ajax-load ').fadeIn();
},
complete: function() {
$('#general-ajax-load ').fadeOut();
}
success: function() {
$('#general-ajax-load ').fadeOut();
}
});
:)
В руководстве $. Load
говорится:
... Это примерно эквивалентно $ .get (url, data, success), за исключением того, что это метод, а не глобальная функция, и он имеет неявную функцию обратного вызова .
Похоже, что неявная функция обратного вызова $. Load
отменяет обратный вызов complete
в вашем $. AjaxSetup
. В документации $. AjaxSetup
говорится:
Все последующие вызовы Ajax с использованием любой функции будут использовать новые настройки, если они не будут отменены отдельными вызовами , до следующего вызова $ .ajaxSetup ().
Думаю, решением было бы заменить ваши вызовы $. Load
на $. Get
(или более подробный $. Ajax
). Вы также можете попробовать использовать вместо него success
.