嵌套循环(2级)Javascript超时

时间:2014-08-13 20:11:08

标签: javascript

在Javascript中存在循环问题,我按照它们来创建循环。但我的问题是我想要一个双循环。我有一个带有图像的div容器的html。

<div id="myDiv">
<img alt="Client Logo" src="1/1-1.png" />
</div>

图像存储在文件夹1到7(其名称)中。因此,图像源看起来像这样1 / 1-1.png,3 / 3-264.png,4 / 4-489.png等。破折号前面的每个文件夹中的文件也有文件夹的编号。目标:我想显示所有图片的超时时间为1 / 1-1.png,然后是1 / 1-2.png,1 / 1-3.png ... 2 / 1-1.png, 2 / 1-2.png等一个接一个,直到7 / 7-608.png。即每个文件夹中有608个图像。我这样做:

for (var f=1; f<=7;f++) {
for (var s=1; s<=608; s++) {
doSetTimeout(s,m);
} }
function doSetTimeout(i,f) {
var timer = i+(f-1)*608;
setTimeout(function(){$('#myDiv img').attr('src',f+'/'+f+'-'+i+'.png')},500*timer);
}

但它不起作用。它曾经很好地工作而没有f的外环。所以,显然,我做错了什么。也许,因为变量是全局变量,但我并不完全明白它在这种情况下的含义。真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你有一个错字。您要发送(s, m)而不是(s, f)

for (var f=1; f<=7;f++) {
  for (var s=1; s<=608; s++) {
    doSetTimeout(s,f);
} }