Bootstrap 3を使用して、切り替え可能なサブメニューを含む垂直メニューを作成する必要があります。次の構造があります。
<nav>
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2 (toggle)</a>
<ul>
<li><a href="#">Item 2.1</a></li>
<li><a href="#">Item 2.2</a></li>
<li><a href="#">Item 2.3</a></li>
</ul>
</li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
</ul>
</nav>
「アイテム2」内のULをデフォルトで非表示にし、「アイテム2」を押して非表示/非表示を解除したい。
垂直サブメニューを切り替え可能にするための鍵は、navs data-toggle = "dropdown"で使用される最も一般的な属性ではなく、属性data-toggle = "collapse"を使用することです。
これを準備しました jsfiddle example 、これは言葉遣いのコードです:
<nav>
<ul class="nav">
<li><a href="#">Link 1</a></li>
<li><a href="#" id="btn-1" data-toggle="collapse" data-target="#submenu1" aria-expanded="false">Link 2 (toggle)</a>
<ul class="nav collapse" id="submenu1" role="menu" aria-labelledby="btn-1">
<li><a href="#">Link 2.1</a></li>
<li><a href="#">Link 2.2</a></li>
<li><a href="#">Link 2.3</a></li>
</ul>
</li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
</nav>
メニュー項目リンクとサブメニュー項目のトグルの両方が必要な場合があります。
テストは次のとおりです。
/* CSS */
.toggle-custom {
position: absolute !important;
top: 0;
right: 0;
}
.toggle-custom[aria-expanded='true'] .glyphicon-plus:before {
content: "\2212";
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript" ></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js" type="text/javascript" ></script>
<nav>
<ul class="nav">
<li><a href="#">Link 1</a>
</li>
<li><a href="#">Link 2</a><a href="#" class="toggle-custom" id="btn-1" data-toggle="collapse" data-target="#submenu1" aria-expanded="false"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a>
<ul class="nav collapse" id="submenu1" role="menu" aria-labelledby="btn-1">
<li><a href="#">Link 2.1</a>
</li>
<li><a href="#">Link 2.2</a>
</li>
<li><a href="#">Link 2.3</a>
</li>
</ul>
</li>
<li><a href="#">Link 3</a>
</li>
</ul>
</nav>