-1

我需要执行此步骤:-

  1. 文件准备好后,
  2. 做功能A,
  3. 功能A完成后,
  4. 执行功能 B、C、D

虽然不完全是答案,但以下方式有效:-

<script>
$(document).ready(function(){
    function_a();
    setTimeout(function(){
        function_b(); 
        function_c();
        function_d();
    }, 100);
});
</script>

当然,我不能总是依赖时间延迟!但是,以下方法不起作用:-

<script>
$(document).ready(function(){
    function_a();
}).complete(function(){
    function_b(); 
    function_c();
    function_d();
});
</script>

第二种方式如何改进?

4

4 回答 4

1
function_a();

function function_a()
{
 ........
 function_b();
}

function function_b()
{
 ........
 function_c();
}

function function_c()
{
  ........
 function_d();
}
于 2013-06-04T07:56:14.853 回答
1
$(document).ready(function(){
    function_a();
    function_b(); 
    function_c();
    function_d();

});

如果函数是同步的,也会这样做。
对于异步函数,使用回调。
这可能会有所帮助:我应该如何调用 3 个函数以便一个接一个地执行它们?

于 2013-06-04T07:56:28.830 回答
1

function_a如果工作同步,你可以在下面做。

$(document).ready(function(){
    function_a();
    function_b(); 
    function_c();
    function_d();
});

但是如果它是异步工​​作的,那么function_a应该提供一个完整回调的参数:

$(document).ready(function(){
    function_a(function(){
      function_b(); 
      function_c();
      function_d();
    });
});
于 2013-06-04T07:58:31.017 回答
0

如果你想要函数遵循那个顺序,你必须推动Deferred。阅读有关 jQuery的信息.when().then(). jQuery 就是为此而生的。

如何使用 jQuery 延迟?

http://learn.jquery.com/code-organization/deferreds/examples/

或者

function_a();
function_b(); 
function_c();
function_d();

上面的方法也是正确的。function_a()但是如果有异步函数,这个方法就行不通了。

于 2013-06-04T09:24:18.690 回答