<div id="menu" onmouseout="hideM()"></div>
Function hideM()
document.getElementById("menu").style.visibility="hidden"
End FunctionFunction showMenu(fid,title)
ids=split(fid,",")
ts=split(title,"<>")
For i=0 to ubound(ids)
inner=inner & "<li class=menuo onmouseover=this.className='menui' onmouseout=this.className='menuo'><a href=#>" & ts(i) & "</a></li>"
Next
document.getElementById("menu").innerHTML="<ul>" & inner & "</ul>"
document.getElementById("menu").style.visibility="visible"
document.getElementById("menu").style.pixelLeft=window.event.x-5
document.getElementById("menu").style.pixelTop=window.event.y-5
End Function
Function hideM()
document.getElementById("menu").style.visibility="hidden"
End FunctionFunction showMenu(fid,title)
ids=split(fid,",")
ts=split(title,"<>")
For i=0 to ubound(ids)
inner=inner & "<li class=menuo onmouseover=this.className='menui' onmouseout=this.className='menuo'><a href=#>" & ts(i) & "</a></li>"
Next
document.getElementById("menu").innerHTML="<ul>" & inner & "</ul>"
document.getElementById("menu").style.visibility="visible"
document.getElementById("menu").style.pixelLeft=window.event.x-5
document.getElementById("menu").style.pixelTop=window.event.y-5
End Function
document.getElementById("menu").style.visibility="hidden"
End Function就是把菜单隐藏,<div >的内容全隐藏
<ul>
<li>ssssss</li>
<li>ssssss</li>
<li>ssssss</li>
</ul>
</div>
onmouseout=hideMenu()去掉
<div onmouseout=hideMenu()>
<ul>
<li>ssssss</li>
<li>ssssss</li>
<li>ssssss</li>
</ul>
</div>
这个仅仅是比方说的
我觉得可能是因为鼠标移到div的一个子标签也算onmouseout
不知道有什么办法没有
document.getElementById("menu").style.display="none";
怎样才能不触发这个事件
{
HTMLElement.prototype.contains = function(obj)
{
while(obj!=null && typeof(obj.tagName)!="undefind")
{if(obj==this) return true; obj=obj.parentNode;} return false;
};
}这个问题是当鼠标从DIV划到它里面的LI时也会触发onmouseout事件,解决的办法有二,一是用setTimeout延迟再判断,这样的话可以判断出鼠标是否真的移出了DIV区域。二是用我上面的这段代码,在IE里是默认就支持contains的,在其它的浏览器里你加上这段代码就了可以支持了,用这个方法可以判断onmouseout的时候鼠标是不是真的划出了DIV区域。