Как я могу отложить вызов ajax в jQuery? - PullRequest
2 голосов
/ 08 мая 2011

Есть ли способ отложить выполнение ajax-запроса до завершения анимации?

var showAjaxLoader = function(selector) {
    $("." + selector).fadeToggle("slow");
    $("." + selector).parent().html('<img src="ajax-loader.gif" />').fadeIn();
};

$(".add, .delete")
    .bind("ajax:beforeSend", function(event, data, status, xhr) {
        showAjaxLoader(this.className);
});

По сути, ответ на запрос заменит содержимое Lay, но я не хочу, чтобы это произошлопока эффект не состоялся.В противном случае изображение просто выскочит без эффекта ...

Ответы [ 2 ]

5 голосов
/ 08 мая 2011

U может использовать метод обратного вызова для завершения анимации:

$("p").fadeToggle("slow", function () {
   $("div").append("<div>finished animation</div>");
   // Here you can put your ajax request
});
3 голосов
/ 08 мая 2011

Просто используйте обратный вызов, как в документации .fadeToggle () , .fadeIn () и .fadeOut () .Сделайте AJAX-вызов в этом обратном вызове.

И я полагаю, что вы не хотите делать запрос даже при исчезновении этого поля (по крайней мере, я не вижу причины здесь), а только при исчезновении.*

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