function a(){
 if()
 {
    return;
 }
setTimeout("a()",100); 
}

解决方案 »

  1.   

    假设我这个函数有一个参数,我先调用了a(1),如果我想结束调用a(1)的同时再调用一次a(2),这种情况下就不行了
      

  2.   


    <script language="javascript">
    j=1;
    function a(i)
    {
    alert(i)
    if(j++>2)
    {
    setTimeout("a("+2+")",1000)
    return;
    }
    setTimeout("a("+1+")",1000)
    }
    a(1)
    </script>
      

  3.   

    3楼的高手,非常感谢,你的方法确实可以,但是我还想问一下,如果我在a()外面有没有可能取消a()里面的setTimeout,或者有没有什么方法可以取消所有已经存在的setTimeout?
      

  4.   

    function a(control){
     if(control=="stop")
     {
        return;
     }
    setTimeout("a()",100); 
    }启动:a()
    停止:a("stop")可否?JS不记得了,大概是这个意思
      

  5.   

    var time = setTimeout("a(" + i + ")",1000);  
    clearTimeout(time);
      

  6.   

    怎么会找不到timeoutID?
    不会吧?给一个全局的变量timeoutID就行了嘛。
    在哪里取消都可以
    var timeoutID = null;
    function a{
       if() 
          clearTimeout(timeoutID);
       else
          timeoutID = setTimeout("a()",100); 
    }
    //这里也可以clearTimeout(timeoutID);