我对使用Bootstrap的开发相当新,我一直在尝试创建一个具有可折叠功能的下拉列表,这样任何带有下拉列表的子项都可以显示在可折叠容器中。
我在网上发现了一些代码,几乎可以解释我想要完成的任务:https://www.bootply.com/1u6VW4bsrR
我试着写下几行HTML代码来完成与上面类似的操作:
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li>
<a data-toggle="collapse" href="#collapse1">HTML</a>
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">
<ul class='dropdown-menu sub-menu'>
<li><a>Type 1</a></li>
<li><a>Type 2</a></li>
</ul>
</div>
</div>
</li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</div>
Codepen链接:https://codepen.io/anon/pen/weLKzp/?editors=1010
但这给了我很多时间。我注意到有两个特定的行为:
你能帮我弄清楚所需的变化在哪里以及我做错了什么?任何指针都表示赞赏。
谢谢!
答案 0 :(得分:1)
在这个例子中,我为多级下拉列表创建了一个.dropdown-submenu类
请注意,我添加了jQuery以在点击时打开多级下拉列表。
.dropdown-submenu {
position: relative;
}
.dropdown-submenu .dropdown-menu {
top: 0;
left: 100%;
margin-top: -1px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">Tutorials
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">HTML</a></li>
<li><a tabindex="-1" href="#">CSS</a></li>
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">New dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">2nd level dropdown</a></li>
<li><a tabindex="-1" href="#">2nd level dropdown</a></li>
<li class="dropdown-submenu">
<a class="test" href="#">Another dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">3rd level dropdown</a></li>
<li><a href="#">3rd level dropdown</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<script>
$(document).ready(function(){
$('.dropdown-submenu a.test').on("click", function(e){
$(this).next('ul').toggle();
e.stopPropagation();
e.preventDefault();
});
});
</script>