загрузка не включает ajaxSetup полный завершенный обработчик

Я имею

// Ajax setup
 $.ajaxSetup({
 beforeSend: function() {
 $('#general-ajax-load ').fadeIn();
 },
 complete: function() {
 $('#general-ajax-load ').fadeOut();
 }
});

на странице загружаются для установки загружающейся анимации для всех моих вызовов ajax. Это работает прекрасное, за исключением загрузки () вызовы. Для загрузок только инициирован beforeSend, и завершенный никогда не называется, Который заканчивается с показом анимации который никогда dissapears.

Какая-либо идея?

7
задан Sumurai8 26 June 2015 в 17:28
поделиться

2 ответа

Добавление Успех устранил проблему, спасибо (могу поклясться, что пробовал это раньше)

 $.ajaxSetup({
 beforeSend: function() {
 $('#general-ajax-load ').fadeIn();
 },
 complete: function() {
 $('#general-ajax-load ').fadeOut();
 }
 success: function() {
 $('#general-ajax-load ').fadeOut();
 }
});

:)

2
ответ дан 7 December 2019 в 05:21
поделиться

В руководстве $. Load говорится:

... Это примерно эквивалентно $ .get (url, data, success), за исключением того, что это метод, а не глобальная функция, и он имеет неявную функцию обратного вызова .

Похоже, что неявная функция обратного вызова $. Load отменяет обратный вызов complete в вашем $. AjaxSetup . В документации $. AjaxSetup говорится:

Все последующие вызовы Ajax с использованием любой функции будут использовать новые настройки, если они не будут отменены отдельными вызовами , до следующего вызова $ .ajaxSetup ().

Думаю, решением было бы заменить ваши вызовы $. Load на $. Get (или более подробный $. Ajax ). Вы также можете попробовать использовать вместо него success .

1
ответ дан 7 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: