Javascript setTimeout 忽略时间参数

rat*_*God 2 javascript settimeout

这不是我第一次使用 setTimeout(),但我无法弄清楚问题出在哪里。setTimeout() 的代码部分正确执行,但它立即执行,没有延迟。如果有人能看到这个问题,那就会有帮助。这是代码:

if(token==1){
    img1.src=ssImages[imgNum];
    num1=0;
    num2=10;
    setTimeout('crossFade()',2500);
}
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 5

你确定这是代码吗?如果立即执行,通常有两个原因:

  1. 开发人员认为时间以秒为单位指定 - 但 2500 就可以了,即 2.5 秒。
  2. 他立即调用该函数(例如setTimeout(foo(), 1234));

但这些原因都不适用于您的代码,因此请检查其余代码是否有对该函数的任何其他调用。


无论如何,你应该传递一个函数而不是一个字符串:

setTimeout(crossFade, 2500);
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要指定任何参数:

setTimeout(function() {
    crossFade(...);
}, 2500);
Run Code Online (Sandbox Code Playgroud)