我试图在最简单的情况下使用setInterval和clearInterval:
var passiveInterval = "";
var activeInterval = "";
function myStartFunction()
{
...
passiveInterval = window.setInterval(passiveCheck, pIntAmt);
activeInterval = window.setInterval(activeCheck, aIntAmt);
...
}
function myEndFunction()
{
...
if (passiveInterval != "")
{
alert("passiveInterval: " + passiveInterval);
window.clearInterval(passiveItnerval);
passiveInterval = "";
}
if (activeInterval != "")
{
window.clearInterval(activeInterval);
activeInterval = "";
}
...
}
令人难以置信的是警报触发,并给出了正确的间隔值(整数),但是然后clearInterval语句触发:
ReferenceError:找不到变量:passiveItnerval
我已经尝试了这个窗口的每一个排列,并且在所有东西的前面拍了一下,但没有任何作用......
答案 0 :(得分:2)
类型。 ctrl + f表示“passiveItnerval”...“t”和“n”相反。
此外,如果可能,请考虑使用setTimeout
代替setInterval
。 setInterval
会变得毛茸茸。
答案 1 :(得分:0)
你有一个错字
passiveItnerval!= passiveInterval
答案 2 :(得分:0)
我有一个简单的功能,你可以一遍又一遍地使用它:
var timer = function(t,i,d,f,fend,b)
{
if( !f )
{ return; }
if( t == -1 || t > 0 )
{ setTimeout( function() { b=(f())?1:0; timer( (b)?0:(t>0)?--t:t, i+((d)?d:0), d, f, fend,b ); }, (b||i<0)?0.1:i ); }
else if( typeof fend == 'function' )
{ setTimeout( fend, 1 ); }
};
parameters:
t = times/repeat count (-1 is endless)
i = interval wait period in milliseconds
d = Interval increase or decrease after each interval
f = function to call after interval
fend = function to call when t ended
注意:当函数f()返回时,即使无穷无尽,也可以停止循环
使用非常简单:
timer(4,1000,0,function(){alert('called');},function(){alert('Thank you - finished');});
想象一下你能用它做什么,它是无止境的; - )
格雷茨和欢呼, Erwin Haantjes