0

我正在尝试找出 jquery 中方法执行的正确顺序。

这是示例脚本。

$(document).ready(function(){
    $("#start").click(function(){
        $("div").fadeOut(function(){
            console.log("i am no 1");
        }).fadeIn(function(){
            console.log("i am no 2");
        }).show('slow',function(){
            console.log('i am no 3');
        });
    });
});

因此,当我单击 id="start" 的按钮时。那么控制台中的 o/p 应该是

我不是1

我不是2

我不是3

但实际的o/p是

我不是1

我不是3

我不是2

所以,我想知道如何知道如何确定 jquery 脚本中方法的执行顺序?优先级的依据是什么???

4

4 回答 4

0

看看这个:http ://api.jquery.com/queue/

简而言之:

当你调用fadeOut你传入的函数时,效果完成后会调用它,然后处理由 引起的效果fadeIn

我相信你应该阅读一般的 Javascript 编程(回调、异步函数调用等)

于 2012-09-15T15:25:35.313 回答
0

感谢@jfriend00。我在 jsFiddle 和本地主机上尝试了相同的代码,我得到了预期的 o/p。

错误的 o/p 来自 W3schools.com 的试用部分。我在那里尝试了代码,但我得到了错误的 o/p 并让自己感到困惑。所以,我学到了 jsFiddle 比 w3schools 自己尝试要好得多的教训。谢谢大家。

于 2012-09-17T10:59:17.097 回答
0

当使用早于 1.6.4 的 jQuery 版本时,我只能在jsFiddle中重现此问题。如果您使用 1.6.4 或更高版本,jsFiddle 可以在我尝试过的所有浏览器中使用。

我的猜测是,您要么尝试使用直到 1.6 才实现的功能,要么遇到了直到 1.6 才修复的错误行为。

您可以使用 jQuery 1.8.0 在此处查看工作顺序:http: //jsfiddle.net/jfriend00/tgraD/

您可以使用 jQuery 1.5.2 在此处查看失败的订单:http: //jsfiddle.net/jfriend00/SJns7/

于 2012-09-15T15:48:56.607 回答
-1

这是因为函数在完成第一个函数的执行之前执行。为了克服这个调用第二个函数在第一个成功回调中的第二个函数和第二个成功回调中的第三个函数。

于 2012-09-15T15:42:28.510 回答