JavaScript setInterval和clearInterval不起作用

时间:2012-02-21 02:15:39

标签: javascript setinterval clearinterval

我试图在最简单的情况下使用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

我已经尝试了这个窗口的每一个排列,并且在所有东西的前面拍了一下,但没有任何作用......

3 个答案:

答案 0 :(得分:2)

类型。 ctrl + f表示“passiveItnerval”...“t”和“n”相反。

此外,如果可能,请考虑使用setTimeout代替setIntervalsetInterval会变得毛茸茸。

答案 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