2014-01-30 4 views
0

У меня есть список изображений, которые я хочу перебирать в виде слайд-шоу. Я установил базовую функцию для отображения изображения, а затем использовал setTimeout, чтобы вызвать функцию и перейти к следующему изображению.setTimeout не вызывает функцию javascript

Функция вызывается только один раз и отображает только одно изображение. Я проверил синтаксис 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();   
+0

Вы можете также использовать setInterval-функцию, которая периодически вызывает функцию. http://www.w3schools.com/jsref/met_win_setinterval.asp – Esko

ответ

3

Вы сбрасываете i в 0 каждый раз slideshow называется.

Переместить var i = 0;, так что это вне функции.


Поскольку это не будет локальным для функции больше, рассмотреть вопрос о предоставлении ему более явное имя, например, slideshow_index

Смежные вопросы