这不是我第一次使用setTimeout(),但我无法弄清问题是什么。 setTimeout()的代码部分正确执行,但它立即执行而没有延迟。如果有人能看到问题,那会有所帮助。这是代码:
if(token==1){
img1.src=ssImages[imgNum];
num1=0;
num2=10;
setTimeout('crossFade()',2500);
}
答案 0 :(得分:4)
你确定这是代码吗?如果立即执行,通常有两个原因:
setTimeout(foo(), 1234)
); 但是没有任何理由适用于您的代码,因此如果对该函数有任何其他调用,请检查其余代码。
无论如何,你应该真正传递函数而不是字符串:
setTimeout(crossFade, 2500);
或者,如果您需要指定任何参数:
setTimeout(function() {
crossFade(...);
}, 2500);
答案 1 :(得分:0)
我同意Theifmaster。窗户。 setTimeout方法有两个参数:
1)功能或表达 2)以毫秒为单位的时间
在您的代码中,您提供字符串或表达式:
的setTimeout( '交叉淡化()',...)
这通常不鼓励使用eval。您应该传递一个函数 - 名为:
的setTimeout(交叉淡入淡出,....)
或建议匿名:
的setTimeout(函数(){交叉淡化()},....
除非你提供一个示例ok jsfiddle给我们看看这个被调用的上下文,否则你可以采取一切措施来解决这个问题。