倒计时停留在1点

Countdown gets stuck at 01:00

本文关键字:1点 停留在 倒计时      更新时间:2023-09-26

我在jQuery中创建了一个倒计时,但我有一个问题。当计数到达01:00时,它卡住了,而不是继续到00:59,分钟为0。

var start = $('#start');
var countMinutes = 2;
var timer;
start.on('click', function(event) {
  event.preventDefault();
  new Timer(function(val, countMinutes) {
    timerMsg = (countMinutes >= 10 ? countMinutes : '0' + countMinutes) + ':' + (val >= 10 ? val : '0' + val);
    time.text(timerMsg);
  });
});
function Timer(callback, val, m) {
  val = val || 59;
  m = countMinutes;
  timer = setInterval(function() {
    callback(val, m);
    if (val-- <= 0) {
      m -= 1;
      if (m < 1 && val <= 0) {
        clearInterval(timer);
      }
      countMinutes = 0;
      val += 60;
    }
  }, 1000);
}

我的html。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="timer"><span id="time">10:00</span></h1>
<a href="#" id="start">Start</a>

变化

if (m < 1 && val <= 0) {

if (m < 0 && val <= 0) {

var countMinutes = 2;
var timer;
$('#start').on('click', function(event) {
  event.preventDefault();
  new Timer(function(val, countMinutes) {
    timerMsg = (countMinutes >= 10 ? countMinutes : '0' + countMinutes) + ':' + (val >= 10 ? val : '0' + val);
    $('#time').text(timerMsg);
  });
});
function Timer(callback, val, m) {
  val = val || 59;
  m = countMinutes;
  timer = setInterval(function() {
    callback(val, m);
    if(val-- <= 0) {
      m -= 1;
      if(m < 0 && val <= 0) {
        clearInterval(timer);
      }
      countMinutes = 0;
      val += 60;
    }
  }, 1000);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="timer">
  
<span id="time">10:00</span></h1>
<a href="#" id="start">Start</a>