サブメニューをクリックしたときにドロップダウンメニューを開いたままにするのが難しいです。あなたは、ブートストラップがこれを箱の外で行うと思います。しかし、私はそれについてのドキュメントを見つけることができません。ここブートストラップ - サブメニューが開いているときにドロップダウンメニューを開く方法
は私が解決策として、見つけたものです:私のHTMLで https://www.bootply.com/rgvY6oPO1J
私はこの持っている:いただきました私のJavaScriptで
<div class="btn-group" id="myDropdown">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
Menu
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="#">Choice1</a></li>
<li><a href="#">Choice2</a></li>
<li><a href="#" id="btn-mynumbers" data-toggle="collapse" data-target="#mynumbers" aria-expanded="false">Numbers</a>
<ul class="nav collapse" id="mynumbers" role="menu" aria-labelledby="btn-mynumbers">
<li><a href="">1</a></li>
<li><a href="">2</a></li>
<li><a href="">3</a></li>
<li><a href="">4</a></li>
<li><a href="">5</a></li>
</ul>
</li>
<li><a href="#">Choice3</a></li>
<li class="divider"></li>
<li><a href="#">Choice..</a></li>
</ul>
</div>
そして、ここでは、次のとおりですため
$("#btn-mynumbers").on("click", function (e) {
e.stopPropagation();
$("#mynumbers").slideToggle("fast");
});
をほとんどの部分は動作します。しかし、私は多くのメニュー項目を持つつもりです。私は、作成したすべてのサブメニューに対して、クリックした呼び出し元を作成したくありません。
だから私はonclickの=
を入れてみました "トグル(この);"
のid = "BTN-mynumbers"
や関数を作成:
function Toggle(element) {
event.stopPropagation();
var parentid = element.id;
var childid = $(parentid).children("ul").attr("id");
$(childid).slideToggle("fast");
}
ので、私はする能力をクリックし、すべてのサブメニューを与えることができます開けておいて。イベントはすべての伝播を停止しました。それはslideToggleです。私はサブメニューが滑り落ちるときにドロップダウンを開いたままにする方法を知らない。