我创建了一个数组并在其中插入了一个 setInterval,但是 tmp[0]
不起作用
tmp = new Array();
v = new Array();
for(i=0; i<2; i++){
j = 0;
tmp[i] = setInterval("if(j<10+(i*5)){alert(i+' '+j);j++;}else{clearInterval(tmp[i])}", 1000);
}
最佳答案
不要使用 eval。试试这个:
var tmp = new Array();
var v = new Array();
for (i = 0; i < 2; i++) {
var j = 0;
tmp[i] = setInterval(function () {
if (j < 10 + (i * 5)) {
alert(i + ' ' + j);
j++;
} else {
clearInterval(tmp[i])
}
}, 1000);
}
fiddle :http://jsfiddle.net/FKEL6/ (弹出窗口很烦人,请注意。)
这可能会做你想做的事:
var tmp = new Array();
var v = new Array();
var i = 0;
for (i = 0; i < 2; i++) {
createTmp(i);
}
function createTmp(p){
var j = 0;
tmp[p] = setInterval(function () {
if (j < 10 + (p * 5)) {
alert(p + ' ' + j);
j++;
} else {
clearInterval(tmp[p])
}
}, 1000);
}
console.log(tmp);
fiddle :http://jsfiddle.net/FKEL6/5/ (还有烦人的警报)
关于数组中的javascript setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243653/