[英]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.