如何停止回调,直到ajax beforeSend事件中的动画完成为止?

时间:2010-08-22 21:14:43

标签: jquery ajax

我在beforeSend ajax事件中使用slideUp和slideDown工作正常是firefox,但在其他浏览器中,ajax回发似乎在slideUpDown完成之前完成,所以先执行我的成功函数,然后执行slideUp / Down。

如何将其更改为(1)在完成slideUp / Down之前不发送ajax或(2)在slideUp / Down完成之前不处理成功函数中的结果?

我尝试创建一个isAnimationFinished变量,该变量在slideDown完成时设置,并且在成功时,我有一个空的while循环等待这个变量,但是如果我尝试这个,我会收到关于脚本运行缓慢的错误。 / p>

2 个答案:

答案 0 :(得分:2)

没有看到你的代码,我不确定每个函数在做什么。我最初的想法是将滑动函数与ajax调用分开,以便ajax函数仅在滑动函数完成后运行。

如果这不合适,请发布一些我们可以解决的代码。谢谢!

答案 1 :(得分:0)

$.ajax({
        url: pageurl + "?data-role=button",
                                            beforeSend: function(){
                                                console.log('beforesend');
                                                animationBeforesend(); // loading bar
                                            },
                                            complete: function(){
                                                console.log('Compelete');
                                            },
        success: function (data) {
                                                var totalTime = new Date().getTime()-ajaxTime;
                                                console.log(totalTime + ' micro second page loading time');
                                                console.log('Success');
                                                console.log($('#progressbar').attr('value'));
                                                $(".Sitecontainer").html(data);
                                                loadFunction(); // loading bar HIDE
        }
    });