如何在jQuery中延迟ajax调用?

时间:2011-05-08 16:11:58

标签: javascript jquery ajax

有没有办法延迟执行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);
});

基本上,请求的响应将取代平铺内容,但我不希望这种情况发生,直到效果发生。否则图像将弹出而没有效果......

2 个答案:

答案 0 :(得分:5)

U可以在动画结束时使用回调方法:

$("p").fadeToggle("slow", function () {
   $("div").append("<div>finished animation</div>");
   // Here you can put your ajax request
});

答案 1 :(得分:3)

只需使用回调功能,例如.fadeToggle().fadeIn().fadeOut()文档。在此回调中进行AJAX调用。

而且我相信即使淡出那个盒子你也不想提出要求(至少我没有看到这里的原因),但只有在淡入时才会提出要求。