通过单击“外部”来避免关闭下拉菜单。仅在单击按钮时显示并隐藏下拉列表。这是小提琴。
< div class =“dropdown”> < button class =“btn btn-primary dropdown-toggle”…
我认为你只需要制作自己的菜单切换点击事件,而不是使用一个bootstrap提供然后尝试覆盖的东西
var $ddlBtn = $("#my-custom-ddl"); $ddlBtn.on("click", function(){ var expanded = /true/i.test($ddlBtn.attr("aria-expanded")); $ddlBtn .attr("aria-expanded", !expanded) .parent().toggleClass("open"); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" /> <div class="dropdown"> <button class="btn btn-primary dropdown-toggle" type="button" id="my-custom-ddl" aria-haspopup="true" aria-expanded="false"> Dropdown Example <span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="#">HTML</a></li> <li><a href="#">CSS</a></li> <li><a href="#">JavaScript</a></li> </ul> </div>
var $ddlBtn = $("#my-custom-ddl"); $ddlBtn.on("click", function(){ var expanded = /true/i.test($ddlBtn.attr("aria-expanded")); $ddlBtn .attr("aria-expanded", !expanded) .siblings(".dropdown-menu").toggleClass("show") .parent().toggleClass("show"); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://netdna.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> <div class="dropdown"> <button class="btn btn-primary dropdown-toggle" type="button" id="my-custom-ddl" aria-haspopup="true" aria-expanded="false"> Dropdown Example <span class="caret"></span> </button> <div class="dropdown-menu" aria-labelledby="my-custom-ddl"> <a class="dropdown-item" href="#">HTML</a> <a class="dropdown-item" href="#">CSS</a> <a class="dropdown-item" href="#">Javascript</a> </div> </div>