【问题标题】:jQuery Countdown - reset timerjQuery Countdown - 重置计时器
【发布时间】:2011-10-07 10:45:55
【问题描述】:

我正在使用jQuery Countdown 插件并进行快速查询。

我的代码目前如下所示:

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 基于页面加载的时间然后存储它?

【问题讨论】:

标签: javascript jquery timer countdown


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多