2012-01-14 62 views
0

我一直在爲今天的大多數倒計時,現在我堅持循環。如果沒有for循環,一切都會正常工作,倒計數到0並重新加載,但是for循環不會正確倒計數並跳過數字。我想在這裏完成的是讓計時器完全倒計時,在完成3次計數後,它將完全停止。我在這裏做錯了什麼?如何循環使用jquery

var number = 25; 
var i; 

function countdown() { 
    $('#display').html("Redirecting in " + number + " second(s)."); 
    for (i = 0; i < 3; ++i) { 
     number--; 
     if (number < 0) { 
      window.location.reload(); 
      number = 0; 
     } 
    } 
    setTimeout(countdown, 1000); 
} 

$(document).ready(function() { 
    countdown(); 
}); 
+0

如果它在沒有循環的情況下工作,爲什麼還在使用它? – 2012-01-14 14:18:49

+0

您在循環中遞減四次'號碼 - 當然,它會跳過數字。你也重新加載,這將重新開始整個過程​​ - 除非你將「總計」計數存儲在某個持久性的地方,比如在一個cookie或其他東西中,每次你重新加載JS時都會重新開始。 – 2012-01-14 14:19:09

+0

你在'for'循環中遞減了'number'四次。將它改爲'for(i = 0; i <1; ++ i){'並且它可以工作。但在這種情況下循環的重點是什麼? – 2012-01-14 14:21:00

回答

1

我把它從25倒數3次,然後重新加載頁面。我對嗎?

var number = 25; 
var i = 0; 

function countdown() { 

    $('#display').html("Redirecting in " + number + " second(s)."); 

    number--; 

    if (number == 0) { 

     number = 25; 
     i++; 

    } 

    if (i == 3) { 

     window.location.reload(); 

    } 

    setTimeout(countdown, 1000); 

} 

$(document).ready(function() { 
    countdown(); 
}); 
+0

如果計數並重新加載3次if這是可能的。如果沒有,可以倒計時並重新加載iframe – bammab 2012-01-14 14:26:27

+0

有幾種方法可以做到這一點。我想我會省下麻煩,並在PHP中設置一個'session'。然後讓PHP輸出一個JS的小代碼來設置你的'i'值。會話本身顯然會增加每個頁面請求。雖然手動重新加載也會增加「我」的價值。 – Jeffrey 2012-01-14 14:30:43