【发布时间】:2012-06-27 09:25:59
【问题描述】:
我有一个数组,我想使用 jquery 队列和一个打印函数将它们打印出来:
var show = function (el) { //print function
console.log('el', el);
}
var arr = ["a", "b", "c", "d", "e"];
var que = $({});
for (var i in arr) {
que.queue('custom', function (next) {
show(arr[i]);
next();
})
}
que.dequeue('custom');
但是所有的打印信息都是e,为什么会这样?打印怎么可能是数组顺序?
第二个问题是当我尝试改变for循环的写法时,比如:
for (var i = 0; i < arr.length; i++) {
//...
}
所有打印信息将是 undefined 。两种写法有区别吗?它总是一样的,不是吗?
【问题讨论】:
-
这里为什么需要使用
queue?它主要用于排队动画。对于数组或对象元素的简单迭代,最快和最简单的方法是使用简单的for循环。 -
@VisioN 原因不相关,是吗?他可能正在尝试理解这个概念。
-
@freakish fwiw,这个概念不太好应用。
-
@VisioN:其实我在一个复杂的应用程序中使用队列,其中数组是stroe函数,我想按顺序执行它们。对于一个简短的问题,我将其抽象出来
标签: jquery arrays for-loop queue