我需要执行此步骤: -
虽然不完全是答案,但以下方式有效: -
<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>
如何改进第二种方式?
答案 0 :(得分:1)
function_a();
function function_a()
{
........
function_b();
}
function function_b()
{
........
function_c();
}
function function_c()
{
........
function_d();
}
答案 1 :(得分:1)
$(document).ready(function(){
function_a();
function_b();
function_c();
function_d();
});
如果函数是同步的,也会这样做 对于异步函数,使用回调 这可能会有所帮助:How should I call 3 functions in order to execute them one after the other?
答案 2 :(得分: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();
});
});
答案 3 :(得分:0)
如果你想要功能,请遵循你必须推动的那个序列Deferred。阅读jQuery .when()
,.then()
。 jQuery是为此而制作的。
How can jQuery deferred be used?
http://learn.jquery.com/code-organization/deferreds/examples/
function_a();
function_b();
function_c();
function_d();
以上方法也是正确的。但是如果function_a()
具有异步函数,则此方法将不起作用。