Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 倒计时计时器中的setInterval在第一轮后执行多次_Javascript_Html_Timer_Setinterval_Countdowntimer - Fatal编程技术网

Javascript 倒计时计时器中的setInterval在第一轮后执行多次

Javascript 倒计时计时器中的setInterval在第一轮后执行多次,javascript,html,timer,setinterval,countdowntimer,Javascript,Html,Timer,Setinterval,Countdowntimer,希望你们安全 我想用下面的代码找出一个简单的倒计时计时器: 当我第一次点击它时,它就会正常工作,按秒倒数它应该如何工作。然而,从第二次它变得“更快”,它每秒移动2个数字。第三次,它每秒运行3个数字,或者如果我一次点击几次,它也会“更快” 我认为这是因为间隔在增加(不知怎么的?),并且每次执行相同的代码n*次 第二但我不知道每次我应该在哪里/如何完全清除间隔 希望这对你们有意义 提前谢谢你的帮助 function makeTimer(){ document.getElementB

希望你们安全

我想用下面的代码找出一个简单的倒计时计时器:

当我第一次点击它时,它就会正常工作,按秒倒数它应该如何工作。然而,从第二次它变得“更快”,它每秒移动2个数字。第三次,它每秒运行3个数字,或者如果我一次点击几次,它也会“更快”

我认为这是因为间隔在增加(不知怎么的?),并且每次执行相同的代码n*次 第二但我不知道每次我应该在哪里/如何完全清除间隔

希望这对你们有意义 提前谢谢你的帮助

    function makeTimer(){
  
  document.getElementById("button-1").innerHTML = "Stop Countdown";
  timeLeft = document.getElementById("set-time").value;
 
  // buttonChange()
  document.getElementById("set-time").value = ""
    setInterval(function(){
      if(timeLeft <=0){
        clearInterval(timeLeft = 0)
      }
          document.getElementById("timer-id").innerHTML = timeLeft+"s"
          timeLeft = timeLeft - 1

    },1000)
    
}

function toggleTimer(){
  // clearInterval(timeLeft)
  button = document.getElementById("button-1")
  if(button.innerHTML ==='Click to countdown'){
    makeTimer()
  }else if(button.innerHTML=== "Stop Countdown"){
    clearInterval(timeLeft = 0)
    button.innerHTML = "Click to countdown"
  }
}
函数makeTimer(){
document.getElementById(“按钮-1”).innerHTML=“停止倒计时”;
timeLeft=document.getElementById(“设置时间”).value;
//按钮更改()
document.getElementById(“设置时间”).value=“”
setInterval(函数(){

如果(timeLeft您错误地使用了
clearInterval

setInterval
返回对计时器的引用,然后必须将其传递到
clearInterval
以停止计时器

例如:

var myTimer = setInterval(myFunction, 1000); //Starts the timer

clearInterval(myTimer); //Stops the timer