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