使用父DIV的「的mouseenter」和「鼠標離開」,而不是 - 子元素並不會影響「鼠標離開」
document.getElementById('Main_Menu_Container_Div').addEventListener('mouseenter',function(){
// do something like your 'slideup' or what ever you want.
});
「事件冒泡」,因爲它是已知的,是問題 - 「元素2上的事件優先,這叫做事件冒泡「。 http://www.quirksmode.org/js/events_order.html
使用示例:
<style>
.Child_Div_Button{
float:left;
cursor:pointer;
height:100px;
width:100px;
background-color:#CCC;
border:#000 thin solid;
margin:2px;
padding:2px;
}
.Child_Div_Button:hover{
background-color:#FFF;
}
</style>
</head>
<body>
<div id="Parent_Div_Container" style="height:300px; width:300px; border:#333 thin solid; background-color:#D2FFFF;">
Parent Div
<div id="button_container">
<div class="Child_Div_Button">
Button 1 Child Div
</div>
<div class="Child_Div_Button">
Button 2 Child Div
</div>
</div>
</div>
<script type="text/javascript">
document.getElementById('button_container').style.display = 'none';// initiate
document.getElementById('Parent_Div_Container').addEventListener('mouseenter',function(){
document.getElementById('button_container').style.display = 'block';
});
document.getElementById('Parent_Div_Container').addEventListener('mouseleave',function(){
document.getElementById('button_container').style.display = 'none';
});
</script>
似乎在工作最新的Firefox,而不需要jQuery的 - 而Chrome,IE和Safari,似乎都需要爲這個jQuery庫工作。那是說mozila現在完全支持使用mouseenter和mouseleave?!?!如果是的話...... YAY!對於實際上幫助開發人員的瀏覽器:)
感謝所有快速回復,接受的答案最終成爲最佳解決方案。 – 2009-08-15 05:26:32