x   =   setInterval("sb()",   10); ????
这行是不是多了对双引号?!

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <html> 
      <head> 
      <title> New Document </title> 
      </head> 
      <body onload="sb();"> 
      <script language="JavaScript"> 
      <!-- 
    var a = 0; 
    var x=null; 
    function sb() { 
        a++; 
        if (a > 10) 
        { 
          document.getElementById("over").innerHTML += "超时"; 
          clearInterval(x); 
          xb(); 
        } 
        else if(x==null)//判断这个定时器是否已经存在
        {      
          x = setInterval("sb()", 10); 
        } 

    function xb(){ 
    document.getElementById("div1").innerHTML = a; 

      //--> 
      </script> 
    <div id="over"> </div> 
    <div id="div1"> </div> 
      </body> 
    </html> 
      

  2.   

    2楼的可以解决问题,但是我改成setTimeout也可以执行,难道setInterval会产生N个定时器???
    但是setTimeout生成的定时器句柄也是不同的啊
      

  3.   

    2楼的可以解决问题,但是我改成setTimeout也可以执行,难道setInterval会产生N个定时器???
    但是setTimeout生成的定时器句柄也是不同的啊
      

  4.   

    2楼的可以解决问题,但是我改成setTimeout也可以执行,难道setInterval会产生N个定时器???
    但是setTimeout生成的定时器句柄也是不同的啊
      

  5.   

    2楼的可以解决问题,但是我改成setTimeout也可以执行,难道setInterval会产生N个定时器???
    但是setTimeout生成的定时器句柄也是不同的啊
      

  6.   

    2楼的可以解决问题,但是我改成setTimeout也可以执行,难道setInterval会产生N个定时器???
    但是setTimeout生成的定时器句柄也是不同的啊
      

  7.   


    /*你原来的代码里面的判断就是这样了当a<10时,就执行了x   =   setInterval("sb()",   10); 
    所以产生了10个定时器,只是x保存的是最后一个定时器的变量.你clearInterval(x); 只是清除了最后一个定时器,还有9个再运行中setInterval()是产生一个连续执行的定时器
    setTimeout()产生一个只执行一次的定时器
    */
    if   (a   >   10) 

    document.getElementById("over").innerHTML   +=   "超时"; 
    clearInterval(x); 
    xb(); 

    else 

    x   =   setInterval("sb()",   10);