Javascript setInterval、clearInterval不工作

Javascript setInterval、clearInterval不工作,javascript,Javascript,我有一个要求,我需要反复调用调用setInterval的函数。我遇到的问题是,如果生成一个函数(比如说每1秒一次),并使用setInterval进行设置;如果我们调用setInterval两次或两次以上,而其间没有clearInterval,则函数将继续调用自身。 例: 此页上的脚本启动此时钟: 开始时间 停止时间 var-myVar; 函数myStartFunction(){ myVar=setInterval(函数(){myTimer()},1000); } 函数myTimer(){ v

我有一个要求,我需要反复调用调用setInterval的函数。我遇到的问题是,如果生成一个函数(比如说每1秒一次),并使用setInterval进行设置;如果我们调用setInterval两次或两次以上,而其间没有clearInterval,则函数将继续调用自身。 例:


此页上的脚本启动此时钟:

开始时间 停止时间 var-myVar; 函数myStartFunction(){ myVar=setInterval(函数(){myTimer()},1000); } 函数myTimer(){ var d=新日期(); 变量t=d.toLocaleTimeString(); document.getElementById(“demo”).innerHTML=t; } 函数myStopFunction(){ console.log(myVar); 净距(myVar); console.log(myVar); }

如果我在两次单击开始时间按钮之间没有单击停止时间,则函数不会停止。这只是该场景的一个示例。怎么解决这个问题

您正在一次又一次地覆盖同一个myVar。。。这意味着停止功能将只停止上次启动的计时器。如果您最多只想运行一个setInteval,只需在启动之前添加对stop函数的调用

您正在一次又一次地覆盖同一个myVar。。。这意味着停止功能将只停止上次启动的计时器。如果您最多只想运行一个setInteval,只需在启动之前添加对stop函数的调用

在startFunction中,只需清除所有现有间隔。否则,您将创建多个间隔,但仅存储对上次创建的间隔的引用

例如:

function myStartFunction(){
  if(myVar) {
    myStopFunction();
  }
  myVar = setInterval(function(){ myTimer() }, 1000);
 }

在startFunction中,只需清除所有现有间隔。否则,您将创建多个间隔,但仅存储对上次创建的间隔的引用

例如:

function myStartFunction(){
  if(myVar) {
    myStopFunction();
  }
  myVar = setInterval(function(){ myTimer() }, 1000);
 }

是的,您应该调整您的逻辑,在不要求用户首先单击停止的情况下,不要触发第二个启动时间实例。这是一台电脑。你告诉它要做什么是的,你应该调整你的逻辑,在不要求用户先单击停止的情况下,不要触发第二个启动时间实例。这是一台电脑。你告诉它该怎么做