对于我的生活,我似乎无法从这个片段中得到任何结果。我希望函数添加,然后删除一个额外的类,其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>
的{{1}}事件中调用。代码段位于页面的最底部,位于onload=
标记的正上方。
帮助?
谢谢,
〜锡安
答案 0 :(得分:2)
作为Pablo said,它们一个接一个地发生,一秒钟后发生。
如果你希望第二个在之后发生第二个:
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或者什么,你肯定会等到第一个完成,然后再安排第二个。)
答案 1 :(得分:0)
他们几乎都在同一个案件中开火。一次超时不会等待另一次。只需将第二个更改为2000:
setTimeout(function(){e.className = "ring";}, 2000);