Javascript 如何停止嵌套在函数中且clearInterval在此函数之外的setInterval?
我很难弄明白如何通过使用位于嵌套函数外部的clearInterval来停止在嵌套函数中调用的SetintervalJavascript 如何停止嵌套在函数中且clearInterval在此函数之外的setInterval?,javascript,setinterval,clearinterval,Javascript,Setinterval,Clearinterval,我很难弄明白如何通过使用位于嵌套函数外部的clearInterval来停止在嵌套函数中调用的Setinterval function interval() { setInterval(function calcRealPos(){ console.log("realPos="+realPos) realPos+=10; },500); } Setinte
function interval()
{
setInterval(function calcRealPos(){
console.log("realPos="+realPos)
realPos+=10;
},500);
}
Setinterval是在DOM的级别0上声明的(这样说是否正确?)。它嵌套在函数中
function interval()
{
setInterval(function calcRealPos(){
console.log("realPos="+realPos)
realPos+=10;
},500);
}
然后在函数中调用函数interval():
function move(distance)
{
// Movement using translate
if (distance==1933.67)
{
interval();
}
}
每当有人按“D”时,我想清除间隔。清除间隔位于另一个未嵌套在任何其他函数中的函数中:
function releasebtn(event)
{
var unpressBtn = event.keyCode;
if(unpressBtn==68)
{
clearInterval(interval());
}
}
document.addEventListener('keypress', pushbtn);
document.addEventListener('keyup', releasebtn);
谢谢 接受setInterval
interval的ID。您需要将间隔ID存储在变量中,然后将其传递给clearInterval
,如下所示:
function calcRealPos() { console.log('foo'); }
// Set the interval and store its ID
intId = setInterval(calcRealPos, 500);
// Later, when you want to clear the interval, use this
clearInterval(intId);
为了停止setInterval,您需要为它分配一个引用(在本例中是一个全局变量)。这是为了确保javascript知道停止/清除哪个setInterval 可以很容易地重新编写setInterval函数来显示这一点
function interval()
{
myinterval=setInterval(function calcRealPos(){
console.log("realPos="+realPos)
realPos+=10;
},500);
}
现在在您的releasebtn函数中,您可以像
function releasebtn(event)
{
var unpressBtn = event.keyCode;
if(unpressBtn==68)
{
clearInterval(myinterval);
}
}
var区间;函数interval(){interval=setInterval(/*code*/)}