我希望以下代码运行如下:
1)遍历for循环直到完成。
2)执行回调函数
而是在每次迭代后执行回调。这是范围问题吗?我是否误解了回调的控制流程?
function flipPages(direction,n,duration,callback){
for(i=0;i<n;i++){
setTimeout(function() { $('#flipbook').turn(direction);}, ((i+1) * duration));
}
callback;
}
flipPages("next",4,1000,flipPages("previous",4,2000));
最佳答案
除了所有这些相关注释之外,我想您还想做这样的事情:
function flipPages(direction, n, duration){
for(var i = 0, l = n; i < n; i++){
setTimeout(function() {
$('#flipbook').turn(direction);
if (!(--n)) {
flipPages({
// direction switch
next: "previous",
previous: "next"
}[direction], n, duration);
}
}, ((i + 1) * duration));
}
}
flipPages("next", 4, 1000);
更新:无需使用回调,直接使用
flipPages
。