首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何防止bootstrap在只点击一个子菜单时折叠所有的子菜单?

要防止 Bootstrap 在只点击一个子菜单时折叠所有的子菜单,可以使用以下方法:

  1. 使用自定义的 JavaScript 代码:通过添加自定义的 JavaScript 代码,可以修改 Bootstrap 的默认行为。可以通过监听菜单项的点击事件,然后判断是否为子菜单,如果是,则阻止默认行为,以防止子菜单折叠。以下是一个示例代码:
代码语言:txt
复制
$('.dropdown-submenu a.dropdown-toggle').on('click', function(e) {
    if (!$(this).next().hasClass('show')) {
        $(this).parents('.dropdown-menu').first().find('.show').removeClass('show');
    }
    var $subMenu = $(this).next('.dropdown-menu');
    $subMenu.toggleClass('show');
    $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
        $('.dropdown-submenu .show').removeClass('show');
    });
    return false;
});
  1. 使用 Bootstrap 的扩展库:有一些第三方库可以扩展 Bootstrap 的功能,包括菜单的行为。例如,可以使用 "Bootstrap Submenu" 扩展库,该库可以实现子菜单的点击不折叠其他子菜单。使用方法如下:
  • 在 HTML 中引入必要的 CSS 和 JavaScript 文件:
代码语言:txt
复制
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-submenu/dist/css/bootstrap-submenu.min.css">
<script src="https://cdn.jsdelivr.net/npm/bootstrap-submenu/dist/js/bootstrap-submenu.min.js"></script>
  • 在需要使用子菜单的地方,添加 data-submenu 属性:
代码语言:txt
复制
<li class="nav-item dropdown">
  <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown
  </a>
  <ul class="dropdown-menu" data-submenu>
    <li class="dropdown-item"><a href="#">Submenu 1</a></li>
    <li class="dropdown-item"><a href="#">Submenu 2</a></li>
  </ul>
</li>
  1. 通过自定义 CSS 样式:可以通过修改 Bootstrap 的 CSS 样式来实现子菜单的点击不折叠其他子菜单。在子菜单的样式中,将其默认设置为不折叠,例如:
代码语言:txt
复制
.dropdown-submenu .dropdown-menu {
    display: block;
}

请注意,以上方法适用于 Bootstrap 4 版本,可能需要根据具体的 Bootstrap 版本进行适当的调整。

腾讯云相关产品和产品介绍链接地址:暂无推荐的腾讯云相关产品与链接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券