2012-10-30 113 views
1

1.每日倒計時

我想使用基思伍德的jQuery倒計時插件(http://keith-wood.name/countdownRef.html)爲了創建一個每日倒計時頁面。例如:jQuery倒計時 - 每日倒計時,還有次要倒計時?

  • A - 減計數至07:00每一天
  • 乙 - 遞減計數至09:00每一天
  • Ç - 遞減計數至11:00每一天

我做的相當哈克的方式:

var foo = new Date(); 
foo.setHours(11) 
foo.setMinutes(0) 
foo.setSeconds(0) 
$('#fooCountdown').countdown({until: foo}); 

基本上,我只需要創建一個新的Date對象默認爲現在,然後將時間設置爲我想今天的時間。

但是,這是非常黑客,也不會在一天結束時重置 - 一旦新的一天結束,它仍然倒計時到前一天的時間。

是否有一個更清潔或更好的方式做這個插件每日倒計時?

2.繼發倒計時

其次 - 我也希望每個倒計時,期滿後,這一天倒計時第二稍後的時間。

E.g.對於A--一旦到達07:00,它就開始倒計時到當天的15:00。

我使用的onExpiry功能這樣做:

$('#officeCountdown').countdown({until: officeOpens, onExpiry: OfficeOpen, alwaysExpire: true}); 

... 

function OfficeOpen() { 
    $('#officeCountdown').countdown('option', {until: officeCloses, onExpiry: OfficeClose, alwaysExpire: true}); 
} 

function OfficeClose() { 
    alert('Office has closed') 
} 

第一部分 - 倒計時,直到officeOpen似乎工作。

但是,第二部分 - 直到OfficeClose不倒計時 - 它似乎始終開始倒計時officeOpens和officeCloses之間的差異,而不是使用當前時間 - 而且OfficeCLose函數似乎永遠不會觸發。

有什麼想法?

回答

0

我建議你使用優秀的Datejs插件來創建/處理日期。
閱讀getting-starteddocs,因爲它是真正地擴展

這種方式,你可以做

$('#fooCountdownA').countdown({ 
    until: Date.today.set({hour:7}) 
}); 
$('#fooCountdownB').countdown({ 
    until: Date.today.set({hour:9}) 
}); 
$('#fooCountdownC').countdown({ 
    until: Date.today.set({hour:11}) 
}); 

至於倒計時,該插件似乎並不友好地對待重新使用倒計時.. 也許你最好創建虛擬元素並將它們插入到dom中以進行倒計時,並在到期時銷燬它們。