JavaScript-setTimeout不';不要在for循环中工作
对于大学,我必须创建一个javascript幻灯片。 我使用函数setTimeout(“其他函数”,timeout)。 我的问题是使用这个递归函数(slideshow())是可行的,但是当我尝试在for循环(altSlideshow())中使用它时,什么都没有发生JavaScript-setTimeout不';不要在for循环中工作,javascript,settimeout,Javascript,Settimeout,对于大学,我必须创建一个javascript幻灯片。 我使用函数setTimeout(“其他函数”,timeout)。 我的问题是使用这个递归函数(slideshow())是可行的,但是当我尝试在for循环(altSlideshow())中使用它时,什么都没有发生 // this one works function slideShow() { nextImg(); setTimeout(slideShow, timeOut); //Angabe Timeout in Milli
// this one works
function slideShow() {
nextImg();
setTimeout(slideShow, timeOut); //Angabe Timeout in Millisekunden
}
// this one doesn't work
function altSlideshow(){
for(var x = 0; x <= 4; x++){
setTimeout(nextImg(), timeOut);
}
}
//这个有效
函数幻灯片(){
nextImg();
setTimeout(幻灯片放映,超时);//Angabe超时(单位:毫秒)
}
//这个不行
函数altSlideshow(){
对于(var x=0;x这里有两个问题:
- 您传递的是
nextImg()
,而不是函数nextImg
- 将所有超时安排在同一时刻(通过的延迟是从循环执行的时间开始计算的)
改变
setTimeout(nextImg(), timeOut);
到
我认为您希望传递对函数的引用,而不是使用返回值:
function altSlideshow(){
for(var x = 0; x <= 4; x++){
setTimeout(nextImg, timeOut);
}
}
函数altSlideshow(){
对于(var x=0;x
function altSlideshow(){
for(var x = 0; x <= 4; x++){
setTimeout(nextImg, timeOut);
}
}