清除setinterval不起作用?

时间:2016-07-09 13:26:43

标签: javascript setinterval

var theintrvl = function() {
  setInterval(function () {
     somefunction()
  }, 3000)
}

somefunction并不重要 - 一切正常,但是!当我试图清除间隔时,它不清楚。这是我试过的:

document.getElementById('clearme').addEventListener('click', function() {
   clearInterval(theintrvl);
});

我还尝试了somefunction而不是theintrvl,但没有尝试!

3 个答案:

答案 0 :(得分:2)

您无需首先将其包装在函数中。只需保存setInterval函数

返回的值
var theintrvl = 
  setInterval(function () {
     somefunction()
  }, 3000);

答案 1 :(得分:2)

你需要

var myinterval = setInterval(function, time)

然后清除它你会做

clearInterval(myinterval)

您可能希望摆脱外部功能,因为myinterval无法从外部访问theintervl

还有一件事,你可能会考虑做

setInterval(somefunction, 3000)

而不是从匿名函数调用函数

希望这有帮助!

答案 2 :(得分:0)

试试这个:

var test = setInterval(somefunction, 3000);
 clearInterval(test);