jquery - 避免点击外部时关闭下拉菜单

标签 jquery bootstrap-4

通过单击外部避免下拉列表关闭。仅单击按钮时显示和隐藏下拉列表。继承人 fiddle

<div class="dropdown">
  <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">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>

最佳答案

Bootstrap 4 下拉事件与 Bootstrap 3 略有不同,因此 suggested duplicates (和 here )将无法阻止外部点击时关闭下拉菜单。

对于Bootstrap 4look for the clickEvent ,并在 hide 事件中发现时,阻止默认关闭行为。仅当单击按钮时,此下拉列表才会关闭。

$('#myDD').on('hide.bs.dropdown', function (e) {
    if (e.clickEvent) {
      e.preventDefault();
    }
})

Demo

<小时/>

在某些情况下,您可能希望在单击按钮菜单时关闭下拉菜单。在这种情况下,您可以检查 clickEvent 目标。例如,查找“nav-link”类。

$('#myDD').on('hide.bs.dropdown', function (e) {
    if (e.clickEvent && e.clickEvent.target.className!="nav-link") {
      e.preventDefault();
    }
});

Demo 2

关于jquery - 避免点击外部时关闭下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120954/

相关文章:

javascript - 单击禁用的输入或按​​钮

javascript - jquery:上下文与闭包?

html - 如何在图像中间插入按钮?

html - 隐藏大中型设备的导航栏切换按钮

html - 移动设备中的容器流体

javascript - jQuery - 从 2 列表创建数组

javascript - 检测特定元素的位置

javascript - 端点位置未在 jsPlumb 调整大小中更新

html - 使用 flexbox Bootstrap 元素到底部

angular - 如何在从 col-12 更改为 col-9 时向 css 中的 div 添加过渡效果?