我试图弄清楚为什么这个 jquery 脚本工作得很好。
这是html:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="hover.js"></script>
</head>
<body>
<ul id="nav">
<li><a href="#">Parent 01</a></li>
<li><a href="#" class="selected">Parent 02</a>
<ul id="dropdown" style="display: none;">
<li><a href="#">Item 01</a></li>
<li><a href="#" class="selected">Item 02</a></li>
<li><a href="#">Item 03</a></li>
</ul>
</li>
<li><a href="#">Parent 03</a>
<ul>
<li><a href="#">Item 04</a></li>
<li><a href="#">Item 05</a></li>
<li><a href="#">Item 06</a></li>
<li><a href="#">Item 07</a></li>
</ul>
</li>
<li><a href="#">Parent 04</a></li>
</ul>
</body>
</html>
如您所见,只是一个简单的菜单。现在我使用 css 来隐藏带有 display:none; 的子菜单。
和jQuery:
$(document).ready(function () {
$('#nav li').hover(
function () {
//show its submenu
alert('enter');
$('#dropdown', this).show();
},
function () {
//hide its submenu
alert('leave');
$('#dropdown', this).hide();
}
);
});
现在我没有得到的是:为什么,当我用鼠标离开“Parent 02”(悬停到子菜单项)时,它不会立即触发“mouseleave”事件,而是会等到子导航的事件被处理。我只能假设它必须处理事件队列。
现场演示: http: //paugasolin.funpic.de/test.html