我想按顺序为不同的DIV制作动画。有没有办法强制JQuery在我的代码中间处理它的队列?类似的东西:
for (var i = 0; i < myHugeNumber; i++){
var divName = '#Div' + i;
$(divName).animate({"left": "-=50px"}, "slow");
$.ProcessQueue() // Once finished animating, continue with FOR loop.
}
我完全知道你可以将一个回调传递给.animate
函数,这可以通过一些递归的voodoo实现,但是这需要在我的代码中进行大量的重组。我是一个固执,顽固的人。是否有一种快速而肮脏的方法来强制JQuery即时处理其队列?
答案 0 :(得分:0)
我知道这会使用回调,但代码似乎比for循环更简单。我以为我会把它扔出去。
var maxI = myHugeNumber;
var curI = 0;
startAnimation();
function startAnimation(){
var id = '#Div' + curI;
$(id).animate({'left': '-=50px'}, 'slow', function(){
curI++;
if(curI<maxI){
startAnimation();
}
});
}