代码<script>
function a() { 
            var i = 0; 
                if (i == 0) { 
                    alert(i); 
                  var tid=  setInterval(function() { 
                        ++i; 
                        alert(i); 
                        if (i > 10) { 
 clearTimeout(tid);
                           
                        } 
                    }, 100); 
                } 
        }
a();
alert("last..");
  </script>
本意是将定时器执行完成以后,最后再输出last。。可是结果不是这样。
我的last必须是要等定时器执行完成以后才能输出。不能放在定时器里面。有什么办法可以解决?

解决方案 »

  1.   


    <script>
    function a() {
    var i = 0;
    var tid = setInterval(
    function(){
    ++i; 
    alert(i); 
    if (i > 2) { 
    clearTimeout(tid);
    alert("last...");
    }
    }, 100); 
    }
    a();
    </script>IE6下测试成功。
      

  2.   

    回2楼的,我的last必须是要等定时器执行完成以后才能输出。不能放在定时器里面。有什么办法可以解决。
    这个办法我知道我要的是在定时器外面执行。
      

  3.   

    在clearTimeout()函数后面再调用一个函数不就行了嘛。
    这个函数里面你就写alert("last...");就会在最后弹出来。
      

  4.   

    clearTimeout(tid);跳出再做alert("last..");????<script>
    function a() { 
                var i = 0; 
                    if (i == 0) { 
                        alert(i); 
                      var tid=  setInterval(function() { 
                            ++i; 
                            alert(i); 
                            if (i > 10) { 
                             clearTimeout(tid);
                               
                            } 
                        }, 100); 
                    } 
            }
            a();
    function b(){
            alert("last..");
    }
    b();
      </script>这样不行?
    或者
    <script>
    var flag = false;
    function a() { 
                var i = 0; 
                    if (i == 0) { 
                        alert(i); 
                      var tid=  setInterval(function() { 
                            ++i; 
                            alert(i); 
                            if (i > 10) { 
                             clearTimeout(tid);
                              flag==true; 
                            } 
                        }, 100); 
                    } 
            }
            a();
    function b(){
        if(true==flag)
            alert("last..");
    }
    b();
      </script>