我有一个嵌套在较大div内的隐藏div,当您将鼠标悬停在较大div上时,设置它会滑下来。当鼠标移出时,该div会滑回去。问题是,当鼠标经过较小的div时,它会尝试将其向上滑动,因为触发了mouseout事件。如何防止div再次隐藏,直到鼠标没有悬停在任何div上?
html:
<div id="topbarVis" class="col1 spanall height1 wrapper">
<div id="topbar"></div>
</div>
这些额外的类是模块化CSS系统的一部分,它们定义了#topbarVis元素的宽度、高度等属性。
CSS:
#topbar {
width: 100%;
height: 30px;
margin-top: -25px;
background-color: #000;
}
js:
// On Mouseover -> Show
$("#topbarVis").mouseover(function(){
$("#topbar").animate({marginTop:0}, 300);
});
// On Mouseout -> Hide
$("#topbarVis").mouseout(function(){
$("#topbar").animate({marginTop:-25}, 300);
});
mouseenter
/mouseleave
得到了相同的行为。 - jAndymosueenter/mouseleave
只应该对实际附加它的元素触发,而不是它的后代元素。 - user113716mouseout
,因为你从技术上讲是离开了外部正方形。也就是说,你正在离开其未被后代遮盖的部分。IE 的mouseenter/mouseleave
系统似乎更有意义,但它不是规范的一部分。 :o( - user113716