setTimeout没有调用函数javascript

时间:2014-01-30 12:07:19

标签: javascript function settimeout

我有一个我希望以幻灯片形式迭代的图像列表。我已经设置了一个基本功能来显示图像,然后使用setTimeout来调用该功能并移动到下一个图像。

该功能仅被调用一次并仅显示一个图像。我检查了setTimeout的语法我确定它是正确的。我的代码中是否存在导致此问题的错误?

<img id='screenImg' src='' height='300' width='450'/>

function slideshow() {

var screenImg = document.getElementById('screenImg');
var gradImg = ['images/grad1.jpg', 'images/grad2.jpg', 'images/grad3.jpg',   'images/grad4.jpg', 'images/grad5.jpg', 'images/grad6.jpg',];
var gradAmt = gradImg.length-1;
var i = 0;

if( i > gradAmt ) {
  i = 0;
}
screenImg.src = gradImg[i];
i++;
var timer = setTimeout(slideshow, 1000);
}
slideshow();        

1 个答案:

答案 0 :(得分:3)

每次调用i时,您都会将0重置为slideshow

移动var i = 0;使其不在函数范围内。


由于它不再是函数的本地函数,请考虑给它一个更明确的名称,例如slideshow_index