在一个上弹菜单代码中,当鼠标快速横向移动或慢速向下移动时,菜单DIV的onmouseleave事件不会被触发,请高手看一下是怎么回事。
下面是代码:
<SCRIPT LANGUAGE="JavaScript">
<!--
function popup1(id,mtop)
{
var t = window.event.srcElement;
var e = document.getElementById(id);
e.style.top = getAbsoluteTop(t) -mtop+25;
e.style.left = getAbsoluteLeft(t);
e.style.visibility = 'visible';
}
function hidden(id)
{
//alert(document.getElementById(id)); 
if(document.getElementById(id) != null)
document.getElementById(id).style.visibility = 'hidden';
//T(id).onmouseleave = function(){show.innerHTML += ' DIVleave ';}
}

function getAbsoluteTop( ob ){
if(!ob){return null;}
var obj = ob;
var objTop = obj .offsetTop;
while( obj != null && obj .offsetParent != null && obj .offsetParent.tagName != "BODY" ){
  objTop += obj .offsetParent.offsetTop;
  obj = obj .offsetParent;
}
return objTop ;
}function getAbsoluteLeft( ob ){
if(!ob){return null;}
  var obj = ob;
  var objLeft = obj .offsetLeft;
  while( obj != null && obj .offsetParent != null && obj .offsetParent.tagName != "BODY" ){
    objLeft += obj .offsetParent.offsetLeft;
    obj = obj .offsetParent;
  }
return objLeft ;
}
//-->
</SCRIPT>
<P STYLE="HEIGHT:400PX"></P>
<span style="width:100px"><a id="te" href="#" class=daohang onmouseover="popup1('zf',250);">菜单1</a></span>
<div id="zf" name="popup"  onmouseleave="hidden('zf')"  style="border:1px solid #8E9F41;padding:1px; background-color: #ffffff; filter: alpha(opacity=90); position:absolute; visibility: hidden; top: 0px;height:250px;width:220px" >
<div id="zf1" style="padding:5px;line-height:20px;text-align:left;">
<span><A class=daohang href="http://www.gov.cn/" target=_blank>中国政府</A></span><br/>
<span><A class=daohang href="http://www.acftu.org/" target=_blank>全国总工会</A></span><br/>
<span><A class=daohang href="http://www.most.gov.cn/" target=_blank>科学技术部</A></span><br/>
<span><A class=daohang href="http://www.mohrss.gov.cn/index.html?aspxerrorpath=/mohrss/Desktop.aspx" target=_blank>人力资源和社会保障部</A></span><br/>
<span><A class=daohang href="http://www.mep.gov.cn/" target=_blank>环境保护部</A></span><br/>
<span><a href="http://www.sasac.gov.cn/n1180/index.html" class=daohang target=_blank>国资委</a></span><br/>
<span><A class=daohang href="http://www.chinasafety.gov.cn/newpage/" target=_blank>国家安监总局</A></span><br/>
<span><A class=daohang href="http://nyj.ndrc.gov.cn/" target=_blank>国家能源局</A></span><br/>
<span><a href="http://www.tj.gov.cn/" class=daohang target=_blank>天津政务网</a></span><br/>
<span><a href="http://www.tjsa.gov.cn/" class=daohang target=_blank>天津国资委</a></span><br/>
</div>
</div>

解决方案 »

  1.   

    没重现你说的问题 - - 不过这段代码在Firefox下无效,帮你改了下 - -
    <html>
    <head>
        <script type="text/javascript" src="jquery-1.6.1.min.js"></script>
        <script type="text/javascript">
            function popup1(that, id, mtop) {
                var t = that; 
                var e = document.getElementById(id);
                e.style.top = getAbsoluteTop(t) - mtop + 25;
                e.style.left = getAbsoluteLeft(t);
                e.style.visibility = 'visible';
            }
                    function getAbsoluteTop(ob) {
                if (!ob) { return null; }
                var obj = ob;
                var objTop = obj.offsetTop;
                while (obj != null && obj.offsetParent != null && obj.offsetParent.tagName != "BODY") {
                    objTop += obj.offsetParent.offsetTop;
                    obj = obj.offsetParent;
                }
                return objTop;
            }        function getAbsoluteLeft(ob) {
                if (!ob) { return null; }
                var obj = ob;
                var objLeft = obj.offsetLeft;
                while (obj != null && obj.offsetParent != null && obj.offsetParent.tagName != "BODY") {
                    objLeft += obj.offsetParent.offsetLeft;
                    obj = obj.offsetParent;
                }
                return objLeft;
            }        function hide(id){
                if (document.getElementById(id) != null)
                                document.getElementById(id).style.visibility = 'hidden';
            }        function test() { alert("a")};
            //-->
        </script>
    </head>
    <body>
        <p style="height: 400PX">
        </p>
        <span style="width: 100px"><a id="te" href="#" class="daohang" onmouseover="popup1(this,'zf',250);">
            菜单1</a></span>
        <div id="zf" name="popup" onmouseleave="hide('zf')" style="border: 1px solid #8E9F41;
            padding: 1px; background-color: #ffffff; filter: alpha(opacity=90); position: absolute;
            visibility: hidden; top: 0px; height: 250px; width: 220px">
            <div id="zf1" style="padding: 5px; line-height: 20px; text-align: left;">
                <span><a class="daohang" href="http://www.gov.cn/" target="_blank">中国政府</a></span><br />
                <span><a class="daohang" href="http://www.acftu.org/" target="_blank">全国总工会</a></span><br />
                <span><a class="daohang" href="http://www.most.gov.cn/" target="_blank">科学技术部</a></span><br />
                <span><a class="daohang" href="http://www.mohrss.gov.cn/index.html?aspxerrorpath=/mohrss/Desktop.aspx"
                    target="_blank">人力资源和社会保障部</a></span><br />
                <span><a class="daohang" href="http://www.mep.gov.cn/" target="_blank">环境保护部</a></span><br />
                <span><a href="http://www.sasac.gov.cn/n1180/index.html" class="daohang" target="_blank">
                    国资委</a></span><br />
                <span><a class="daohang" href="http://www.chinasafety.gov.cn/newpage/" target="_blank">
                    国家安监总局</a></span><br />
                <span><a class="daohang" href="http://nyj.ndrc.gov.cn/" target="_blank">国家能源局</a></span><br />
                <span><a href="http://www.tj.gov.cn/" class="daohang" target="_blank">天津政务网</a></span><br />
                <span><a href="http://www.tjsa.gov.cn/" class="daohang" target="_blank">天津国资委</a></span><br />
            </div>
        </div>
    </body>
    </html>