我有一个菜单,看起来像下面的一个。我希望一级孩子在悬停或点击时出现(所以它也适用于iPad)。当悬停(或点击)第一级孩子时,我想要它的二级孩子出现,如果他们存在。在悬停或单击不同的DOM元素时,应该再次隐藏所有子菜单。悬停或点击jquery下拉菜单
另外,当用户在页面上时,我想要菜单折叠出来,直到他将鼠标悬停在另一个菜单项上或点击不同的菜单项,以便他总能看到他在导航中的位置。
我在Wordpress中构建了一个朋友,他应该能够使用后端创建和更改其导航菜单。因此,将某些类或ID添加到某些元素不是一种选择。
<style>
.sub-menu {display: none;}
</style>
<ul class="menu">
<li>child 1
<ul class="sub-menu">
<li>child 1.1
<ul class="sub-menu">
<li>child 1.1.1</li>
<li>child 1.1.2</li>
</ul>
</li>
<li>child 1.2
<ul class="sub-menu">
<li>child 1.2.1</li>
<li>child 1.2.2</li>
</ul>
</li>
</ul>
</li>
<li>child 2
<ul class="sub-menu">
<li>child 2.1</li>
<li>child 2.2</li>
</ul>
</li>
</ul>
这就是我想出来的,但它不起作用。当鼠标悬停在1.1和1.2的兄弟姐妹上时,
$("ul.menu li").hover(function() {
$(this).find("ul.sub-menu").not("ul.sub-menu li ul.sub-menu").slideDown();
} , function() {
$(this).find("ul.sub-menu").hide();
});
$("ul.menu li ul.sub-menu").hover(function() {
$(this).find("ul.sub-menu").slideDown();
} , function() {
$(this).find("ul.sub-menu").hide();
});
只是一个评论,iPad将如果您的菜单中的主要选项不会在任何地方重定向,则将悬停操作转换为点击操作l显示你的菜单,所以如果你的菜单要以这种方式工作,不要麻烦做两个动作(悬停和点击) – Paradise