jquery - 下拉菜单中的无限级别

标签 jquery html css drop-down-menu

我有一个生成的无序列表,我想在其中制作一个下拉菜单。

问题是我不知道会有多少层,我只想一次显示一个层。

到目前为止我得到了这个:


HTML:

<ul class="nav">
    <li>
        <a href="#">link1</a>
    </li>
    <li>
        <a href="#">link2</a>
        <ul>
            <li>
                <a href="#">link2.1</a>
                <ul>
                    <li>
                       <a href="#">link2.1</a>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

CSS:

.nav ul {
}
.nav li ul {
    display: none;
}
.nav ul li a {
    display: block;
}
.nav li:hover ul { 
    display: block; 
}

然而,当悬停在顶部时,此代码会显示所有子 ul。而我想要的只是显示下一层,并在该层下隐藏子层。等等。但仍显示高于水平。

最佳答案

jsFiddle DEMO

.nav ul {
}
.nav li ul {
    display: none;
}
.nav ul li a {
    display: block;
}
.nav li:hover>ul { //change here
    display: block; 
}

不是显示 hover 的所有 ul 子级,而是只显示直接子级。

关于jquery - 下拉菜单中的无限级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076453/

相关文章:

javascript - 语义弹出列表宽度太小

javascript - 从表单结果调用 javascript 函数

javascript - 自定义光标在 Chrome 中无法正常工作

javascript - 传递特定于函数的变量

html - 在两个文本对象上使用位置

javascript - 通过javascript在每次点击时动态增加字体大小

css - 仅当 flex 元素达到最小宽度时才换行

javascript - 在服务器端和客户端之间重用 HTML

php - 具有两个输入字段的搜索引擎得出相同的结果

javascript - 点击功能的问题