簡體   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