双呼叫AJAX使用jquery
问题描述:
两个电话:双呼叫AJAX使用jquery
$('#add').live('click', function() {
$('.simplebox').slideUp(200, function() {
$('html, body').animate({scrollTop:140}, 350, function() {
$('#loading-add').slideDown(300, function() {
$.ajax({
type: "POST",
url: "..",
data: getDataToPost(),
cache: false,
success: function(data){
alert(data);
$('#loading-add').delay(1000).fadeOut(200, function() {
$('#successfull-add').fadeIn(200);
});
}
});
});
});
});
})
但是,如果我打电话到live
事件后,立即AJAX,它调用的时间(因为它应该是):
$('#add').live('click', function() {
$.ajax({
type: "POST",
url: "..",
data: getDataToPost(),
cache: false,
success: function(data){
alert(data);
$('#loading-add').delay(1000).fadeOut(200, function() {
$('#successfull-add').fadeIn(200);
});
}
});
})
有什么想法为什么会发生?真奇怪..
谢谢。使用queue()
答
尝试:
$('.simplebox').slideUp(200);
$('.simplebox').queue(function() {
$('body').animate({scrollTop:140}, 350);
$('body').queue(function() {
$('#loading-add').slideDown(300);
$('#loading-add').queue(function() {
//ajax call
});
});
})
+0
问题是'$('html,body')。animate(...)'虽然... – 2012-03-15 18:51:28
+0
'$('body')'就足够了,虽然我更新代码以反映这一点,但它很相似。 – 2012-03-15 18:55:03
你能否更详细地解释一下你的问题吗? – 2012-03-15 18:35:23
我想你可能已经放弃了你的一些问题,这有点不清楚。你能添加什么来让我们更好地理解你的问题吗? – 2012-03-15 18:35:46
可能重复[jQuery $ .animate()多个元素,但只触发一次回调](http://*.com/questions/8793246/jquery-animate-multiple-elements-but-only-fire-callback-once) - 问题在于你的'animate'回调函数对每个元素都调用一次,在这种情况下是'html'和'body'。要么只使用'body'或者对这个问题的答案。这个问题也可能与其他动画方法一样。 – 2012-03-15 18:37:01