====高分求解====(浮动层的隐藏问题)
描述如下:
<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 ";