javascript clearInterval() 函数不起作用

问题描述

   var a = 0;

window.addEventListener("keydown",function(e) {
 
  clearInterval(interval) //this dont work
  var interval = setInterval(function() { //this is good
    if (a == 0) {
      console.log(a);
      a = 10;
    } else if (a == 10) {
      console.log(a);
    }
  },120)
})

//我想当用户按键间隔停止时,新的间隔重新开始但旧的间隔不能停止

解决方法

你有两个问题。

  • 您的函数中有 var interval 内部,因此每次运行该函数时它都会重置
  • setTimeout 将在一段时间后调用一次函数。它不会清除间隔,为此您需要 clearInterval