hi:
   我在一个 javascript 函数里面定义了个show_me 函数,在里面调用了 setTimeout, 可是在  firefox 中报告
   show_me 未定义。
function show_me(Cid,Oid){ /*....*/ setTimeout("show_me("+Cid+","+Oid+")");}这样使用有问题么? 还请朋友相助。

解决方案 »

  1.   


    setTimeout(函数,时间[,脚本语言]);例如 setTimeout(show_me(Cid,Oid),1000);
      

  2.   

    是的,函数原型是这个。可 setTimeout 是放在函数内部,而且 其第一个参数是这个函数本身的调用,如何不用这么写?
      

  3.   

    写成 下面这样倒是没问题的,不知为何。function show_me(Cid,Oid){ /*....*/ setTimeout(function(){show_me(Cid,Oid);});}
      

  4.   

    CS文件
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;Page.ClientScript.RegisterStartupScript(this.GetType(), "", "setTimeout('show_me(Cid,Oid)', 1000)", true);//1000是1秒,时间自己设置
    //这个是通过后台方法注册js组件
    js文件
    function show_me(Cid,Oid)
    {
           //你的放法
    }
      

  5.   

    语法:setTimeout(code,millisec)setTimeout() 只执行 code 一次,多次调用的话需要让 code 自身再次调用setTimeout()函数。setTimeout('show_me(Cid+,Oid)',毫秒时间)
      

  6.   

    楼主是不是function show_me定义完就直接执行了
    如 (function show_me(……){……})();
    如果是这样是会报未定义的错的
    可以另起一行开始执行
      

  7.   


    没有直接执行。不过这个问题先不管他了,用上面我说的那种方法可以工作就ok了
    现在新的问题是多个 setTimeout 函数调用又用 clearTimeout 取消好象有些问题。请参见: 
    http://topic.csdn.net/u/20110916/20/37438827-d143-4002-ab1e-f90a75947d9e.html