我正在使用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
});
}
答案 0 :(得分: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
});
}