我使用jQuery和setInterval来显示我的元素中的倒计时但是它没有使用console.log来更新文本我可以看到间隔正常运行。这是代码: 我在jQuery中调用了这个函数:
function startTimer(duration, display) {
var timer = duration, minutes, seconds,days,hours;
setInterval(function () {
days = Math.floor(duration / (60*60*24));
days_raw = days * (60*60*24);
hours = Math.floor((duration-days_raw) / (60*60));
hours_raw = hours * (60*60);
minutes = Math.floor((duration-(hours_raw + days_raw)) / (60));
minutes_raw = minutes * (60);
seconds = Math.floor(duration-(hours_raw + days_raw + minutes_raw));
seconds_raw = seconds;
if(days>0)
{
if(days===1){
display.text(days+" Day");
}
else
{
display.text(days+" Days");}
}
else if(days<=0)
{ console.log(display);
display.text(hours+":"+minutes + ":" + seconds);
}
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
这是我的jQuery代码:
jQuery(document).ready(function() {
$('[data-countdown]').each(function() {
var $this = $(this), finalDate = $(this).data('countdown');
startTimer(finalDate,$this);
});
});
.data(&#34;倒计时&#34;)的值来自php文件
答案 0 :(得分:0)
问题是持续时间的值没有改变,所以我添加了duration--; if(duration<0) return;
并解决了问题