【发布时间】:2014-01-25 03:53:21
【问题描述】:
我在 HTML 中有一个 menu-submenu-subsubmenu 结构,如下所示:
<menu>
<li><a href="...">Item 1</a></li>
<li><ul>
<li><a href="...">Subitem 1</a></li>
<li><a href="...">Subitem 2</a></li>
<li><ul>
<li><a href="...">Sub-subitem 1</a></li>
<li><a href="...">Sub-subitem 2</a></li>
<li><a href="...">Sub-subitem 3</a></li>
</ul>
<a href="...">Subitem 3</a></li>
<li><a href="...">Subitem 4</a></li>
</ul>
<a href="...">Item 2</a>
</li>
<li><a href="...">Item 3</a></li>
<li><a href="...">Item 4</a></li>
...使用这种 css 格式:
menu {
display: block;
width: 200px;
}
/* hide subitems */
menu li ul,
menu li ul li ul {
display: none;
position: absolute;
}
/* set up positions */
menu li ul {
left: 200px;
width: 200px;
}
menu li ul li ul {
left: 400px;
width: 200px;
}
我使用这个 jQuery 代码:
$(function() {
/* hide all submenu */
$('menu').find('ul').hide();
/* show submenu on mouseenter */
$('menu li a').mouseenter(function() {
$(this).parent().children('ul').show();
}).mouseleave(function() {
$(this).parent().children('ul').hide();
});
});
如何检测鼠标是否将元素留给他们的孩子?或者如果有必要,我怎样才能让子元素留下来?
【问题讨论】:
-
你不需要像
menu > ul > li > ul这样的东西吗 -
我认为不是标签名称才是本质。如果这是问题,请将其更改为
<nav>。 ;) -
这有帮助吗? jsfiddle.net/xSN2S
-
您的 HTML 无效。
li应该在ul内。 -
您的 HTML 无效,但不是因为 @putvande 或 @Mr.外星人说过。 To fix it, you need to add a
[type="toolbar"]attribute to your<menu>element。或者,如果您的菜单旨在包含导航链接,而不是 Web 应用程序的交互式 javascript 驱动控件,you should be using the<nav>element with a<ul>or<ol>child element。
标签: javascript jquery html css menu