2017-07-05 24 views
-1

我很难在javascript中重置和启动时间间隔函数。以下是我迄今为止的工作:重置并开始一个新的时间间隔

$(document).ready(function(){ 
 
$("#start").click(function(){ 
 
var valu = $("#in").val() 
 
setInterval(function() 
 
{ 
 
console.log("hello") 
 
},1000*valu) 
 
}) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="in"> 
 
<button id="start">Start</button>

问题:当我输入一个新值,然后按开始,旧的间隔保持工作,而不只是新的。例如,如果您输入1并按下启动控制台每1秒输出一次(良好)。但是,如果输入10,而不是更改为10秒的时间间隔,则保持旧的1秒间隔。 目标:当我输入一个新值时,我希望删除旧的间隔函数并开始一个新的间隔。

你能帮我解决这个问题吗?

+1

提示:使用'clearInterval'和'setInterval'的结果。 –

回答

2

$(document).ready(function(){ 
 
    $("#start").click(function(){ 
 
     var valu = $("#in").val(); 
 
     if(typeof myTimer != "undefined") { 
 
      clearInterval(myTimer); 
 
     } 
 
    
 
     window.myTimer = setInterval(function() 
 
     { 
 
      console.log("hello") 
 
     },1000*valu); 
 
    }) 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="in"> 
 
<button id="start">Start</button>

Store中setInterval在可以再次在下次调用函数时访问的全局变量。

然后,检查是否设置了变量,并使用clearInterval来停止计时器。然后再次启动一个新的计时器setInterval

相关问题