Interval不会更新文本jQuery

时间:2015-07-13 00:19:12

标签: javascript jquery setinterval

我使用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文件

1 个答案:

答案 0 :(得分:0)

问题是持续时间的值没有改变,所以我添加了duration--; if(duration<0) return;并解决了问题