日期:2014-05-18  浏览次数:20400 次

====高分求解====(浮动层的隐藏问题)
描述如下:

<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

请大家帮忙



------解决方案--------------------
<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 ";
}
------解决方案--------------------
UP
------解决方案--------------------
在hiddenDiv()判断event鼠标的位置,如果位置超出了div showDetail的范围就隐藏,不然就不隐藏!!!

------解决方案--------------------
你把onmouseout换成onmouseleave,我在IE6应该没问题~
------解决方案--------------------
这种方法也可以吗??
$( "showDetail ").style.display = "none ";
没用过这种方法!还有div隐藏了..能触发showdiv();吗?
我的意见是显示的事件设在一个标签上面!
------解决方案--------------------
楼主的意思是不是 showDetail 中如果出现一些其它元素标签,就会触发onmouseout(hiddenDiv)事件, 这个showDetail就会隐藏,你要的是不是在showDetail内,不管遇到什么样的其它标签都不会触发onmouseout(hiddenDiv)事件?

如果是这样,我的那个方法应当行得通,如果你试了不行,我再看看
------解决方案--------------------
因为你进入showDetail的子控件就会引起子控件的onmouseover,也就会引起showDetail的onmouseout,因为鼠标不可能会同时在2个控件里面,只可能在1个控件里面,移动到了子控件中,鼠标必然就离开showDetail
------解决方案--------------------
哦,原来showDetail的子控件也有相应的onmouseover事件,不好意思

可以这样,查找子控件的父控件也就是showDetail,然后再子控件的onmouseover里面,控制他的父节点(showDetail)的显示
------解决方案--------------------
不过,showDetail里得有个onmouseover用来指示自已显示
------解决方案--------------------
BearRui(AK-47)

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

------解决方案--------------------
结贴了没,
我在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 ";