循环通过一组名称,间隔采取行动

时间:2014-06-03 17:59:54

标签: javascript for-loop

在使用JavaScript / jQuery的HTML页面中,我有一个图像文件名(arListx)数组。在那个页面上,我有一个名为show(pict)的例程,它以某种方式处理图像,然后显示它。

我想通过以特定间隔通过show(pict)运行每个图像来模拟幻灯片。

到目前为止,我所拥有的最好的运气是显示最终图像(显然,所有图像都是通过代码运行的,但只有最后一个显示)。

使用我对5226285(settimeout-in-a-for-for-loop-and-pass-i-as-value)的解释,我提出了这个:

function doSetTimeout(i) {
  setTimeout(function() { show(arListx[i]); }, 5000);
}
.
.
.
//[main]
for(i=0; i<arListx.length; i++) {
    doSetTimeout(i);
}
.
.
.
function show(pict) {
    $("#OurPicture").attr('src',pict);
  .
  .
  .
}

我显然做错了什么并且会感激任何建议。

1 个答案:

答案 0 :(得分:2)

您需要使用i*5000逐步设置超时,以便它们显示为0,5000,10000,15000等。您所写的内容只是在5秒后调用它们。

function doSetTimeout(i) {
  setTimeout(function() { show(arListx[i]); }, i*5000);
}
.
.
.
//[main]
for(i=0; i<arListx.length; i++) {
    doSetTimeout(i);
}
.
.
.
function show(pict) {
    $("#OurPicture").attr('src',pict);
  .
  .
  .
}