描述如下:<div id="showDetail" onmouseout="hiddenDiv()" style="position:absolute;left:500px;top:500px;border:1px solid #ccc;background:#f8f8f8;display:none;width:200px;height:200px;padding:10px;line-height:2.0em;"></div>function hiddenDiv() {
        $("showDetail").style.display = "none";
    }这是一个隐藏的层,要完成的功能:1.当鼠标放在某个要显示详细的块元素上时,触发事件,利用AJAX在后台获取相关数据,并填充到DIV中显示   ==》没有问题2.如果鼠标移动到DIV外则隐藏该层。==》这里有问题问题描述:如果获取到的数据中含有非文字的内容,如:<span>aaa</span><a href=#>aaaaa</a>当鼠标一接触到这些内容就会引发DIV的onmouseout事件,隐藏了层。不知道这是为什么,有大虾遇到过这情况没~~~我的浏览器是IE6.0请大家帮忙

解决方案 »

  1.   

    <div id="showDetail" onmouseout="hiddenDiv()" onmouseover="showDiv()" style="position:absolute;left:500px;top:500px;border:1px solid #ccc;background:#f8f8f8;display:none;width:200px;height:200px;padding:10px;line-height:2.0em;"></div>function hiddenDiv() {
            $("showDetail").style.display = "none";
        }function showDiv() {
            $("showDetail").style.display = "block";
        }
      

  2.   

    在hiddenDiv()判断event鼠标的位置,如果位置超出了div showDetail的范围就隐藏,不然就不隐藏!!!
      

  3.   

    Devin_lee(感觉)帅哥,你看我的问题了吗
      

  4.   

    多谢BearRui(AK-47)提供了另一条思路如果没办法解决的话也只能这样了但我还是年明白,为什么会出现这样的事?有点怪....
      

  5.   

    你把onmouseout换成onmouseleave,我在IE6应该没问题~
      

  6.   

    这种方法也可以吗??
      $("showDetail").style.display = "none";
    没用过这种方法!还有div隐藏了..能触发showdiv();吗?
    我的意见是显示的事件设在一个标签上面!
      

  7.   

    用BearRui(AK-47)提示的方法完成了功能部分了但还不明白为什么会出现这种情况:(
      

  8.   

    楼主的意思是不是 showDetail 中如果出现一些其它元素标签,就会触发onmouseout(hiddenDiv)事件, 这个showDetail就会隐藏,你要的是不是在showDetail内,不管遇到什么样的其它标签都不会触发onmouseout(hiddenDiv)事件?如果是这样,我的那个方法应当行得通,如果你试了不行,我再看看
      

  9.   

    因为你进入showDetail的子控件就会引起子控件的onmouseover,也就会引起showDetail的onmouseout,因为鼠标不可能会同时在2个控件里面,只可能在1个控件里面,移动到了子控件中,鼠标必然就离开showDetail
      

  10.   

    哦,原来showDetail的子控件也有相应的onmouseover事件,不好意思可以这样,查找子控件的父控件也就是showDetail,然后再子控件的onmouseover里面,控制他的父节点(showDetail)的显示
      

  11.   

    不过,showDetail里得有个onmouseover用来指示自已显示
      

  12.   

    原来这样谢谢BearRui(AK-47)来解惑~~~非常感谢~~~
      

  13.   

    BearRui(AK-47) 
     
       因为你进入showDetail的子控件就会引起子控件的onmouseover,也就会引起showDetail的onmouseout,因为鼠标不可能会同时在2个控件里面,只可能在1个控件里面,移动到了子控件中,鼠标必然就离开showDetail
    --------------------------------------------------------
    很明白
      

  14.   

    结贴了没,
    我在ie7和firefox2.0.0.6都试过没有出现鼠标移除锚点div就消失的情况。可否这样写 意思大概如下,ie和firefox事件有区别,楼主自己google下
    function hiddenDiv(event) {
    if(ie) event = window.event;
    var myDiv = $("showDetail")
    if(event && event.target==myDiv)
        myDiv.style.display = "none";
    }
      

  15.   

    在div上加一个onmouseover="显示div的函数" 就可以了~