【发布时间】:2011-07-08 11:04:05
【问题描述】:
如果我需要一个接一个地调用这个函数,
$('#art1').animate({'width':'1000px'},1000);
$('#art2').animate({'width':'1000px'},1000);
$('#art3').animate({'width':'1000px'},1000);
我知道在 jQuery 中我可以这样做:
$('#art1').animate({'width':'1000px'},1000,'linear',function(){
$('#art2').animate({'width':'1000px'},1000,'linear',function(){
$('#art3').animate({'width':'1000px'},1000);
});
});
但是,假设我没有使用 jQuery,我想调用:
some_3secs_function(some_value);
some_5secs_function(some_value);
some_8secs_function(some_value);
我应该如何调用这个函数来执行some_3secs_function,然后在调用结束之后执行some_5secs_function,然后在调用结束之后调用some_8secs_function?
更新:
这仍然不起作用:
(function(callback){
$('#art1').animate({'width':'1000px'},1000);
callback();
})((function(callback2){
$('#art2').animate({'width':'1000px'},1000);
callback2();
})(function(){
$('#art3').animate({'width':'1000px'},1000);
}));
三个动画同时开始
我的错误在哪里?
【问题讨论】:
-
您的意思是要在 3 5 和 8 秒内准确调用函数还是一个接一个地调用函数?
-
我认为您只是不确定同步与异步函数执行。我在下面更新了我的答案。希望对您有所帮助。
标签: javascript asynchronous callback closures