javascript setInterval 在数组中
我创建了一个数组并在其中插入了 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);
}
I created an array and inserted a setInterval in it, but tmp[0]
doesn't work
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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用 eval。试试这个:
Fiddle: http://jsfiddle.net/FKEL6/ (弹出窗口很烦人,只是所以你知道。)
这可能会做你想做的事:
Fiddle: http://jsfiddle.net/FKEL6/5/(还有烦人的警报)
Do Not use eval. Try this:
Fiddle: http://jsfiddle.net/FKEL6/ (it is annoying with the popups, just so you are aware.)
This might do what you want it to do:
Fiddle: http://jsfiddle.net/FKEL6/5/ (also has annoying alerts)
这样的事情的输出是:
etc,这是正确的。当 j < 时停止。 20.
但最后你的计时器仍在继续,你所做的就是一遍又一遍地调用clearInterval(tmp[2]),每秒两次。
The output of such a thing is:
etc, which is correct. It stops when j < 20.
But at the end your timer is still going on and all you are doing is calling clearInterval(tmp[2]) over and over, twice a second.