Здесь есть пара неправильных вещей. Во-первых, его код передачи, который должен быть оценен в первом параметре setTimeout , не рекомендуется. Вместо этого лучше передать обратный вызов:
setTimeout(function() { swap(); },10000);
//Or
setTimeout(swap,10000); //Passing the actual function as the callback
Во-вторых, вы вызываете метод swap () без параметров в течение времени ожидания. Он должен передать новое имя файла изображения (возможно, объявив массив имен файлов) или проверить, установлен ли параметр или нет.
function swap(newImage,element) {
if(newImage) {
var fileName = newImage.toString()+".jpg";
element.src = fileName;
}
t=setTimeout(this,10000)
}
Эта функция, очевидно, ничего не будет делать после первого запуска (поскольку не указаны новые имена файлов изображений). Используя массив, вы можете перебирать несколько имен файлов:
var images = ['1.jpg','2.jpg','3.jpg'];
var slideshow = function(element, images, index) {
if(!index || ( (index + 1) > images.length) ) index = 0;
element.src = images[index];
t = setTimeout(function(){
slideshow(element, images, index + 1);
},10000)
};
//Fetch the image element the slideshow is running on
var element = document.slideshow;
slideshow(element, images);
Это будет продолжать переключаться между изображениями в массиве до тех пор, пока тайм-аут не будет отменен.