2011-05-08 156 views
2

有没有办法延迟ajax请求执行直到动画结束?如何在jQuery中延迟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内容,但我不希望这种情况发生,直到发生效果。否则图像将只是弹出,没有效果...

回答

5

U可以使用当动画完成回调梅索德:

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

只要使用回调,为.fadeToggle().fadeIn().fadeOut()文档中。在此回调中进行AJAX调用。

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