alertdiv(); 是调用的意思.setTimeout("alertdiv",2000); 是你把此方法alertdiv传给setTimeout函数

解决方案 »

  1.   

    function 

    setTimeout("alertdiv()",2000); 
    没函数名,没()?
      

  2.   

    哦,这个函数名是有的,是alert(),原文中漏掉了,马上补上!
      

  3.   

    晕,没修改原文的权限,原文应该是:
    function alert()

    setTimeout("alertdiv()",2000); 

    这样的。
      

  4.   

    alert是javascript的自己的函数, 你还是改个名吧.:)
      

  5.   

    这个我改过了,没用的。
    把alertdiv()换成其他的都可以正常实现,应该是alertdiv()中有问题,而alertdiv()中最后用了insertAdjacentHTML()方法,是不是这个和SetTimeOut()有冲突呀?
      

  6.   

    1) 请不要使用IE HTML 引擎保留的函数名(alert)。
    2)  [window.]event对象为null.
      

  7.   

    确实是event对象为null造成的,那应该如何来获取鼠标的坐标来给Div定位呀?
      

  8.   

    1) 我没有仔细阅读代码, 但是初步判断, 你可以你的函数作为div的onclick事件处理函数没, 并且要延迟的话, 请将函数和event对象绑定。
      

  9.   

    比如说你有一个div<div onclick="MyAlert();"></div>function MyAlert()
    {
     你的alertdiv逻辑。 
    }如果你要延迟的话, 帮定一下event就可以了, 具体做法如下:
    function.prototype.bind = function(object)
    {
      var method = this;
      return function() {
        method.apply(object, arguments);
      }
    }function MyAlert()
    {
      setTimeout(MyDelayedAlert.bind(event), 2000);
    }
      

  10.   

    我要做的DIV是自动生成的,也就是当鼠标放在某个控件上时,自动生成这个DIV并显示出来,而用鼠标的坐标来给DIV定位,所以div的onclick根本用不到的。不过谢谢你那个event定位的做法。
      

  11.   

    也就是当鼠标放在某个控件上时???那你倒是说说是什么控件啊, 那也有onmouseover事件啊。
      

  12.   

    重新总结下:
    我遇到的问题不是这个DIV不能自动弹出,这个alertdiv()方法结合onmouseover事件完全可以做到。
    但我想实现延迟弹出的效果,而setTimeout("alertdiv()",2000)不能正常运行,原因是在alertdiv()中我用到了:
    event.clientx
    event.clienty
    来获取鼠标的坐标值,而在setTimeout()中event为null,导致出现‘缺少对象’的错误。
    而我要解决的就是如何让event能够在setTimeout中正常运行或者用其他的方法代替event.clientx这种获取鼠标坐标的方法。
    前面csucdl这位朋友给的event绑定的做法我试过了,但没成功。因为我JS不是太熟,可能哪里写错了。所以懂的朋友麻烦在alertdiv()基础上写一个完整的绑定event的代码。或者其他解决的方法也行!
      

  13.   

    setTimeout 的调用把当前的执行环境临时变为Global
    当然访问不到event啦
      

  14.   

    see:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    function a(){
    b();
    setTimeout(b,1000);
    } function b(){
    alert(b.caller);
    } a();
      //-->
      </SCRIPT>
     </BODY>
    </HTML>
      

  15.   

    solution:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <a href="#" onmouseover="a()" >move - here</a>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    function a(){
    _src = window.event.srcElement;
    setTimeout(function(){b();},1000);
    } function b(){
    alert(_src.childNodes[0].nodeValue);
    }
      //-->
      </SCRIPT>
     </BODY>
    </HTML>这个_src其实也是全局对象滴
      

  16.   

    不好意思, function.prototype.bind 请把function改为Function, Function才是构造函数。