当您在不移动鼠标的情况下加载文档时,在您移动鼠标之前不会切换鼠标悬停动作。但我认为鼠标悬停会随着鼠标移动而切换,如果它已经“结束”onLoad。
这段代码呢?无论如何,我认为你的错误来自鼠标悬停没有被切换,因为 JS 只检查每 x 毫秒,如果你移动得太快,它会在没有调用事件的情况下离开 div。
$('#menu ul li').mouseenter(function(){
// hide all other divs
$(".dropdown").hide(0);
// show the div we want
$(this).children(".dropdown").show(0);
}).mouseleave(function(){
$(".dropdown").hide(0);
});
如果你不关心动画,那么使用 CSS 总是比使用 JS 更好。
您需要像这样设置它:
<div id="menu">
<ul>
<li>
Menu 1
<div class="dropdown">Sub1</div>
<div class="dropdown">Sub2</div>
</li>
<li>
Menu 2
<div class="dropdown">Sub1</div>
<div class="dropdown">Sub2</div>
</li>
</ul>
</div>
CSS:
.dropdown { display: none; position: relative; }
#menu li:hover .dropdown { display: block; }