youbest(冲天飞豹),我开始也是这么写的,好像不可以啊

解决方案 »

  1.   

    如果你的参数是字符的,可以这么写。
    setTimeout("function('"+var+"')",time)
    如果你的参数是数字的,可以这么写。
    setTimeout("function("+var+")",time)
      

  2.   

    那就用这个
    setTimeout("function('"+var+"')",time)
    object未定义这样的错误有可能是你程序设计的问题.
      

  3.   

    window.var1 = document.all['someDHTMLObject'];
    window.setTimeout("func1(var1)", 1000);
      

  4.   

    算了,把代码贴出来给大家看看
    function showlayer(layername)
    {   isfirst=false
        layername.style.visibility="visible"
    lastlayer=layername
    layerin(layername)

    }
    function layerin(layername)

     var timeid
     alert(layername)
     if(!isArrive(layername))
      {
         layername.style.pixelLeft=layername.style.pixelLeft+100
         timeid=setTimeout("layerin('"+layername+"')",70);
      }
      else
      {
           clearTimeout(timeid)         //停止运动      
       }
     }
       function isArrive(layername)                 //判断层是否飞到制定地点
       {
     if(layername.style.pixelLeft>=300)
      return true
      else
      return false
       }
    <a onclick="showlayer(layer1)">xx</a>
    大概就是一个层从左边飞出来的效果
      

  5.   

    timeid=setTimeout("layerin('"+layername+"')",70);==>window.tempObject = layername;
    timeid=setTimeout("layerin(tempObject)",70);
      

  6.   

    本来你这个语句是应该这样写的:
    timeid=setTimeout("layerin",70,layername);
    但由于IE对这个第三个可选的参数支持的不好,所以在IE使用setTimeout这个函数都是建议尽量不要调用有参数的函数!