2015-12-02 76 views
0

我正在使用jquery倒计时倒数到特定的日期和时间。当计数器到期时,我希望计数器被销毁,用当前时间加10分钟重新启动,并具有新的到期功能。jQuery倒计时不重新启动

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

我尝试过几种组合,其中包括'option',将函数移动到...但我无法使其工作,因此最后一个函数(简单控制台日志)被称为最终过期函数。

这里是我的代码:

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 
    }); 
} 

回答

1

onCounteronExpiry不是一个函数,因此,立即执行,而不是到期:

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 
    }); 
}