2011-10-07 172 views
0

我正在使用jQuery Countdown插件並進行快速查詢。jQuery倒計時 - 重置計時器

我的代碼目前看起來是這樣的:

function doCountdown(){ 
    var nextNoon = new Date(); 
    if (nextNoon.getHours()>=12){ nextNoon.setDate(nextNoon.getDate()+1); } 
    nextNoon.setHours(11,30,0,0); 

    $('h3 .timer strong').countdown({until: nextNoon, compact: true, 
     description: '', onExpiry: function(){doCountdown()}}); 
} 

$(window).load(function(){ 
    doCountdown(); 
}); 

因此,基本上,它倒計數,直到下一個11:30AM。但是我需要它在計數器達到11:30AM時重置計數器,所以它會自動進入定時器的23:59:59

目前它只是堅持在00:00:00即使doCountdown功能被稱爲onExpiry(與console.log測試,它絕對稱它)。

是因爲JavaScript的基礎上的時間關閉頁面加載,然後存儲它?

+0

[這可能有助於](http://stackoverflow.com/a/10769296/456135) – anu

回答

1

原因是因爲您的nextNoon創建錯誤地計算了上午11:30到中午12:00之間的時間。在這半小時內,if()將評估爲false,因此它會將時間設置爲當天的上午11:30。然而,我們已經超過了那個時間,因爲我們是在上午11點30分到12點之間。所以倒數只會歸零。

你需要做如下:

var todaysNoon = new Date(), nextNoon = new Date(); 
todaysNoon.setHours(11,30,0,0); 
if (todaysNoon <= nextNoon){ nextNoon.setDate(nextNoon.getDate()+1); } 
nextNoon.setHours(11,30,0,0); 
+0

謝謝!這似乎工作! – rickyduck

+0

@rickyduck,很高興。 – davin