从_Bootstrap_
dropdown文档的事件部分:
hide.bs.dropdown
:调用hide实例方法后,立即触发此事件。
对于初学者来说,为了防止下拉菜单关闭,我们可以通过返回
false以下内容来监听此事件并阻止其继续:
$('#myDropdown').on('hide.bs.dropdown', function () { return false;});对于完整的解决方案,您可能希望单击下拉列表时将其关闭。因此,仅在 某些情况下, 我们希望阻止该框关闭。
为此,我们将
.data()在下拉菜单引发的另外两个事件中设置标志:
shown.bs.dropdown
-显示时,我们将设置.data('closable')为false
click
-点击后,我们将设置.data('closable')为true
因此,如果
hide.bs.dropdown事件是通过
click下拉菜单中的引发的,则我们将允许关闭。
Javascript
$('.dropdown.keep-open').on({ "shown.bs.dropdown": function() { this.closable = false; }, "click": function() { this.closable = true; }, "hide.bs.dropdown": function() { return this.closable; }});HTML (注意,我已经将该类添加keep-open
到了下拉列表中)
<div > <!-- Dropdown Button --> <button id="dLabel" role="button" href="#" data-toggle="dropdown" data-target="#" > Dropdown <span ></span> </button> <!-- Dropdown Menu --> <ul role="menu" aria-labelledby="dLabel"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li ></li> <li><a href="#">Separated link</a></li> </ul></div>



