可以在外部设置i<0 来控制。
也可以用clearTimeout来控制

解决方案 »

  1.   

    if(i > 0)
      setTimeout("getShop()",2000);应该这样,有条件的去执行...条件不符时[i<0]时就不会去执行,你那是嵌套了的递归法...递归法就应当这样来退出...
      

  2.   

    <javascript>
    var i
    var timer
    function getShop()
    {
        ......
        ......
        ......    ......
        ......
       if(i<0)
       {
         clearInterval(timer);
         return;
        }
       timer = setInterval("getShop",2000)