css 如何防止在下拉列表中单击时关闭下拉列表?

sgtfey8w  于 2022-12-01  发布在  其他
关注(0)|答案(3)|浏览(260)

我正在使用Bootstrap为my website创建一个下拉列表,但我遇到了一些问题。
在我的网站上,如果单击“Select Populations”(选择人群),将出现弹出窗口(仅供参考:点击“提交”会有东西出现在里面)。而且当我点击里面的时候,它总是关闭。我怎么能阻止它这样做呢?我只希望它在点击外面的时候关闭。
下面是我使用的代码:
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: '';
}

于飞:

<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>
vngu2lb8

vngu2lb81#

'.dropdown-menu'捕获气泡。在这种情况下,不需要捕获下拉列表中的元素。
e.stopPropagation()可防止事件向上冒泡至DOM树形结构,以防止任何父行程常式收到事件的通知。

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

erhoui1w2#

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

qnzebej0

qnzebej03#

button html标记中使用data-bs-toggle参数。
示例:
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false"> Clickable inside</button>
数据b触发值可以是data-bs-auto-close="true" or "false"data-bs-auto-close="outside" or "inside"
我已经在我的代码中试过了,它工作得很好。

相关问题