2017-04-15 70 views
0

我想用JQuery完成CountDown時鐘。除了最後一個部分,在那裏我假裝使頁面倒數至0。這重裝Evrything工作正常,就是我有:JQuery:倒數計時到零時重新加載頁面

1 - 首先我克里特容器:

var iDiv = document.createElement('div'); 
iDiv.id = 'countdown'; 
iDiv.className = 'countdown'; 

2-現在時鐘

// Countdown Clock JQuery 
function startTimer(duration, display) { 
    var timer = duration, minutes, seconds; 
    setInterval(function() { 
     minutes = parseInt(timer/60, 10); 
     seconds = parseInt(timer % 60, 10); 
     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 
     display.text(minutes + ":" + seconds); 
     if (--timer < 0) { 
      timer = duration; 
     } 
    }, 1000); 
} 
// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
      location.reload(); 
     } 
}); 

好了,一切工作正常,但最後這一點:

if (fiveMinutes === 0) { 
    location.reload(); 
    } 

該頁面不會在倒數到達零時重新加載。有任何想法嗎?

回答

0

您可以通過setTimeout的重新加載它:在第一個腳本的執行執行

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    setTimeout(function(){ location.reload() }, fiveMinutes*1000); 
}); 
+0

非常感謝你,那是一種比我達成的解決方案更優雅的方式。我添加了另一個監聽計數器的var以達到0(00:00),儘管它有效,但它只是一個醜陋的補丁。 VAR過期= window.setInterval(函數(){ 如果($( 「*:含有('00:00' )」)長度> 0){ document.location.reload(TRUE);} 。 1000); –

+0

@ KimJong-un解決了你的問題? –

0

如果條件只有一次。此時五分鐘變量是60 * 5(300)並且不符合=== 0條件。

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
     location.reload(); 
    } 
}); 

您需要檢查計時器是否運行到0;

setInterval(function() { 
    minutes = parseInt(timer/60, 10); 
    seconds = parseInt(timer % 60, 10); 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
    display.text(minutes + ":" + seconds); 
    if (--timer < 0) { 
     timer = duration; 
    } 
}, 1000); 

函數使得在定時器值更新中執行條件檢查。

希望這會有所幫助。

相關問題