我试图启动几个setInterval函数“一次”。 我有一个for循环调用索引函数,它包含setInterval。javascript setInterval函数内循环不工作
我找的答案都在这里: JavaScript closure inside loops – simple practical example 这里: setInterval with loop time
,但我仍然没有成功...挣扎
我检查了标签,TAB2,这两个如果我用setInterval函数
这里的console.log外部读取他们的作品是我的代码:
var tab = <?php echo json_encode($matrice); ?>;
var tab2 = new Array();
var funcs = [];
var countDownAction = new Array();
function countDown(i)
{
countDownAction[i] = setInterval(function(i)
{
// some actions
}, 1000);
}
for(var i = 0; i < tab.length; i++)
{
tab2[i] = [];
tab2[i]['hours'] = tab[i]['hours'];
tab2[i]['minutes'] = tab[i]['minutes'];
tab2[i]['seconds'] = tab[i]['seconds'];
funcs[i] = countDown.bind(this, i);
}
for(var j = 0; j < tab.length; j++)
{
funcs[j]();
}
你的'//某些动作'是否依赖变量'i'? – Luka
是的,这些动作取决于变量我 –
你正在传递一个函数给'setinterval',它需要一个参数'i',但是'setInterval'没有传入参数给它的回调函数,所以'i'将是未定义的。 –