【问题标题】:jQuery countdown not restartingjQuery倒计时没有重新启动
【发布时间】:2015-12-02 15:59:35
【问题描述】:

我正在使用 jquery 倒计时来倒计时到特定的日期和时间。当计数器到期时,我希望计数器被销毁,以当前时间加上 10 分钟并使用新的到期函数重新启动。

但由于某种原因,当我的第一个计时器用完时,执行第二个计时器的到期功能并开始 10 分钟倒计时。

我尝试了几种组合,包括“选项”、移动函数……但我无法让它工作,因此最后一个函数(一个简单的控制台日志)被称为最终到期函数。

这是我的代码:

var select = new Date(data.select);  //date from server

$('#counter').countdown({
    until: select,
    format: 'dhms',
    layout: ' ({h<}{hn} timer {h>}{m<}{mnn} minutter {m>}{s<}{snn} sekunder{s>})',
    onExpiry: onCounter
});

function onCounter() {
    $('#counter').countdown('destroy');
    $('#counter').countdown({
        until: '+10m',
        format: 'ms',
        layout: ' ({m<}{mnn} minutter {m>}{s<}{snn} sekunder{s>})',
        onExpiry: console.log('times up') // last function to be called
    });
}

【问题讨论】:

    标签: jquery date countdown jquery-countdown


    【解决方案1】:

    您的onCounter onExpiry 不是函数,因此会立即执行而不是在到期时执行:

    function onCounter() {
        $('#counter').countdown('destroy');
        $('#counter').countdown({
            until: '+10m',
            format: 'ms',
            layout: ' ({m<}{mnn} minutter {m>}{s<}{snn} sekunder{s>})',
            onExpiry: function() { console.log('times up'); } 
        });
    }
    

    或者你可以创建一个新函数并调用它,就像你对第一个函数所做的那样:

    function onFinalCounter() {
        console.log("times up");
    }
    
    function onCounter() {
        $('#counter').countdown('destroy');
        $('#counter').countdown({
            until: '+10m',
            format: 'ms',
            layout: ' ({m<}{mnn} minutter {m>}{s<}{snn} sekunder{s>})',
            onExpiry: onFinalCounter
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多