单击内部时如何防止下拉菜单关闭?

新手上路,请多包涵

我正在使用 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: '';
}

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>

原文由 Vanquiza 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 533
2 个回答

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

e.stopPropagation() 防止事件在 DOM 树中向上冒泡,防止任何父处理程序收到事件通知。

 $('.dropdown-menu').on('click', function(e) {
  e.stopPropagation();
});

原文由 Vanquiza 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 tmsss 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题