放入循环时Javascript计时器中断

问题描述 投票:0回答:1

所以我想在Javascript上制作一个计时器,我是新手,所以这是非常基本的。我让它工作,以便分钟和秒数正确改变,但是当我尝试在循环中进行时它会混乱。任何帮助都会很棒。

var seconds = 5;
var minutes = 3;

function countdown() {
  for (i = 0; i < 3; i++) {
    if (seconds > 0) {
      seconds--;
      setTimeout("countdown()", 1000);
    } else if (seconds <= 0) {
      minutes--;
      seconds = 5;
    }
  }

  document.getElementById("timer").innerHTML = minutes + "M " + seconds + "S";
}

countdown();
<p id="timer"></p>
javascript
1个回答
0
投票

function startCountdown(minutes, seconds) {
  updateElement()
  var timerId = setInterval(function() {

   if(--seconds == 0) {
      seconds = 59
      --minutes
    }
 
    if(minutes === 0) clearInterval(timerId)
    updateElement()
  }, 1000);

  function updateElement() {
    document.getElementById("timer").innerHTML = minutes + "M " + seconds + "S"
  }
}

startCountdown(5, 3)
<p id="timer"></p>
© www.soinside.com 2019 - 2024. All rights reserved.