这不是我第一次使用setTimeout(),但我无法弄清楚问题是什么。 setTimeout()的代码部分正确执行,但是它没有延迟就立即执行。如果有人能看到这个问题,那会有帮助。代码如下:Javascript setTimeout忽略时间参数
if(token==1){
img1.src=ssImages[imgNum];
num1=0;
num2=10;
setTimeout('crossFade()',2500);
}
这不是我第一次使用setTimeout(),但我无法弄清楚问题是什么。 setTimeout()的代码部分正确执行,但是它没有延迟就立即执行。如果有人能看到这个问题,那会有帮助。代码如下:Javascript setTimeout忽略时间参数
if(token==1){
img1.src=ssImages[imgNum];
num1=0;
num2=10;
setTimeout('crossFade()',2500);
}
您确定这是代码?如果立即执行,通常有两个原因:
setTimeout(foo(), 1234)
);但是,没有一个原因适用于您的代码,因此如果有任何其他调用该函数,请检查其余代码。
无论如何,你应该传递一个函数,而不是一个字符串:
setTimeout(crossFade, 2500);
或者,如果你需要指定任何参数:
setTimeout(function() {
crossFade(...);
}, 2500);
@ratSawGod:究竟哪一个信息不应该进一步传播?任何ThiefMaster所说的都是100%正确的。 *“不起作用”*不是有用的错误描述。我们只能用你给我们的东西来工作,到目前为止,你只给了我们这一行'setTimeout('crossFade()',2500);',它完美地工作。创建一个更完整的示例来演示您的问题。请不要粗鲁。其他人正在花费宝贵的时间来帮助你*。 –
我Theifmaster同意。窗户。 setTimeout的方法有两个参数:
1)功能或表达 2)时间(ms)
在你的代码提供一个字符串或表达式:
的setTimeout( '交叉淡入淡出()',.. ..)
这通常不鼓励使用eval。你应该通过一个功能 - 无论是命名为:
的setTimeout(淡入淡出,....)
OR的建议匿名:
的setTimeout(函数(){交叉淡入淡出()} ....
这是所有你能做的麻烦,除非你提供一个例子确定的jsfiddle拍这个代码,看看这个被称为上下文。
您正在调用一个函数而不是一个字符串? '的setTimeout( crossFade,2500);' –
@Igor Dymov:不,那不是同一个问题。 – Guffa
请创建一个http://jsfiddle.net/演示,因为超时本身[工作得很好](http://jsfiddle.net/JAU2Z/)。 –