如何在内部点击时阻止我的下拉关闭?

Van*_*iza 4 html javascript css twitter-bootstrap

我正在使用Bootstrap为我的网站创建一个下拉列表,但我遇到了一些问题.

在我的网站上,如果点击"选择人群",将出现弹出窗口(仅供参考:单击"提交"将显示其中的内容).当我点击它内部时,它总是关闭.我怎么能阻止它这样做?我只希望它在场外点击时关闭.

这是我使用的代码:

CSS:

@import url('http://getbootstrap.com/dist/css/bootstrap.css');

.dropdown-menu:before {
  position: absolute;
  top: -7px;
  left: 9px;
  display: inline-block;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #ccc;
  border-left: 7px solid transparent;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  content: '';
}

.dropdown-menu:after {
  position: absolute;
  top: -6px;
  left: 10px;
  display: inline-block;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #ffffff;
  border-left: 6px solid transparent;
  content: '';
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="dropdown">
    <button data-toggle="dropdown" id="submitButton" type="button" id="pops" >Select Populations</button>
    <ul id="popupDropDown" class="dropdown-menu" role="menu" aria-labelledby="dLabel">

    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

tms*_*sss 12

Bootstrap 5 现在具有自动关闭功能,您可以在其中配置此行为。


Van*_*iza 11

'.dropdown-menu'抓住泡沫.在这种情况下,无需捕获下拉列表中的元素.

e.stopPropagation()可防止事件冒泡DOM树,从而阻止任何父处理程序收到事件通知.

$('.dropdown-menu').on('click', function(e) {
  e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)