我正在尝试利用 jquery 队列按顺序执行一系列函数。这些“排队”功能实际上是在页面上为对象设置动画。
这是我构建队列的原始代码:
this.queue = function(fx, params) {
this.animation_queue.push({fx: fx, params: params});
};
然后,一旦所有功能都排队,我会像这样使用它:
this.animate = function() {
for(var i=0; i<this.animation_queue.length; i++) {
this.animation_queue[i].fx.apply(this, [this.animation_queue[i].params]);
}};
显然,我遇到的问题是队列元素没有正确执行。虽然它们确实是按顺序执行的,但因为每个函数都执行了一个动画,我实际上需要每个队列元素在前一个元素的动画完成后执行。
我研究了使用 jquery 队列,如下所示:
this.queue = function(fx, params) {
this.animation_queue.delay(500, 'animations');
this.animation_queue.queue('animations', function(next) {
next();
});
};
但是我不确定如何像以前一样使用参数调用我的函数。
关于我如何做到这一点的任何建议?