我正在尝试使用Keith Wood的jQuery倒计时插件(http://keith-wood.name/countdownRef.html)来创建每日倒计时页面。 E.g:
我是以一种相当黑客的方式做的事情:
var foo = new Date();
foo.setHours(11)
foo.setMinutes(0)
foo.setSeconds(0)
$('#fooCountdown').countdown({until: foo});
基本上,我只是创建一个默认为now的新Date对象,然后将时间设置为我今天想要的时间。
然而,这非常hacky,并且它在一天结束时也没有重置 - 一旦新的一天结束,它仍然倒数到前一天的时间。
使用此插件进行每日倒计时是否有更清洁或更好的方式?
其次 - 我还希望每次倒计时到期时都倒计时到当天晚些时候。
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似乎永远不会触发。< / p>
有什么想法吗?
答案 0 :(得分:0)
我建议您使用优秀的Datejs插件来创建/处理日期 (阅读getting-started和docs,因为它非常广泛)
这样你可以做到
$('#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中以保持倒计时,并在到期时销毁它们。