Javascript setTimeout 忽略时间参数

标签 javascript settimeout

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

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

最佳答案

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

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

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


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

setTimeout(crossFade, 2500);

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

setTimeout(function() {
    crossFade(...);
}, 2500);

关于Javascript setTimeout 忽略时间参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736084/

相关文章:

javascript - 在子类中调用父类的方法

javascript - 如何在 AngularJS ng-click 触发器之前设置超时

javascript - 使用 setTimeouts 排队的浏览器功能可以自动放弃吗?

python - 检查服务器是否在线的合理超时是多少?

javascript - 使用 service worker 的带有通知的计时器

javascript - 自执行函数

javascript - 如何对未注册用户隐藏图像

javascript - 递归 `setTimeout` 未按预期方式进行

javascript - 将 $data 变量从 CodeIgniter 中的 Controller 传递到 iframe

php - PHP执行前的确认提示