我很难在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秒间隔。 目标:当我输入一个新值时,我希望删除旧的区间函数并开始一个新的区间。
你能帮我解决这个问题吗?
答案 0 :(得分: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);
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="in">
<button id="start">Start</button>
&#13;
将setInterval
存储在一个全局变量中,下次调用该函数时可以再次访问该变量。
然后,检查变量是否已设置并使用clearInterval
来停止计时器。然后再次使用setInterval
启动新计时器。