繁体   English   中英

Javascript-为什么此setTimeout函数不起作用?

[英]Javascript - Why isn't this setTimeout function working?

对于我的一生,我似乎无法从此片段中获得任何结果。 我希望函数在每次执行后添加一个附加类,然后将所有附加类删除到id为"ring"所有元素,并增加延迟。 setTimeout()函数的其他示例将其编写如下。

function flash_rings()
{
    var e = document.getElementById("ring");
    setTimeout(function(){e.className = "ring hover";}, 1000);
    setTimeout(function(){e.className = "ring";}, 1000);
}

该类已经过编写和测试,因此我知道这不是CSS的错。 该函数将在<body>onload=事件中onload= 代码段位于页面的底部,紧靠</body>标记。

救命?

谢谢,

〜锡安

正如Pablo所说 ,它们接二连三发生。

如果您希望第二个第二个之后发生:

function flash_rings()
{
    var e = document.getElementById("ring");
    setTimeout(function(){
        e.className = "ring hover";
        setTimeout(function(){
            e.className = "ring";
        }, 1000);
    }, 1000);
}

要么

function flash_rings()
{
    var e = document.getElementById("ring");
    setTimeout(function(){ e.className = "ring hover"; }, 1000);
    setTimeout(function(){ e.className = "ring"; }, 2000);
}

后者的连接性稍差一些,但是您可以肯定地确定第二个将在第一个之后大约一秒钟发生,除非该页面真的很忙于做其他事情。 (你不会做,如果第一个是不是也是一个计时器的事情,如果它是AJAX或东西,你肯定会等待第一个调度第二前完成。)

他们几乎都在同一情况下开火。 一个超时将不会等待另一个。 只需将秒数更改为2000:

setTimeout(function(){e.className = "ring";}, 2000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM