多级可折叠Bootstrap侧导航菜单有问题

Jef*_*f W 7 html javascript css jquery twitter-bootstrap

我一直在寻找一个同样问题的例子,但我还没有运气.我正在尝试使用bootstrap.js在bootstrap中创建一个多级可折叠侧导航.

我的问题是我已经添加了第二级但是当我单击列表项以触发它打开时它会折叠整个菜单.当我重新打开菜单时,第二级菜单也会打开.我的代码如下:

          <div class="sidebar-nav">
      <p class="sidenav-header">Units and Lessons:</p>
      <ul class="nav nav-list">
        <li class="nav-header" data-toggle="collapse" data-target="#content-areas"> <span class="nav-header-primary">
                Content Areas
        </span>
            <ul class="nav nav-list collapse" id="content-areas">
                <li><a href="#" title="Title">All</a></li>
                <li><a href="#" title="Title">Urban Planning</a></li>
                <li><a href="#" title="Title">Sustainability</a></li>
                <li><a href="#" title="Title">Public Administration</a></li>
                <li data-toggle="collapse" data-target="#nav-health" data-parent="#content-areas"><a href="#" title="Title">Health</a>
                  <ul class="nav-secondary nav-list collapse" id="nav-health">
                    <li><a href="#" title="Title">Introduction</a></li>
                    <li><a href="#" title="Title">Lesson: What is Epilepsy?</a></li>
                    <li><a href="#" title="Title">Lesson: Pathology</a></li>
                  </ul>
                </li>
            </ul>
        </li>
          <li class="nav-header" data-toggle="collapse" data-target="#languages"> <span class="nav-header-primary">
                Languages
        </span>
            <ul class="nav nav-list collapse" id="languages">
                <li><a href="#" title="Title">All</a></li>
                <li><a href="#" title="Title">Arabic</a></li>
                <li><a href="#" title="Title">Turkish</a></li>
                <li><a href="#" title="Title">Hebrew</a></li>
            </ul>
        </li>
    </ul>  

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

我正在讨论的具体部分位于"内容区域"下的"健康"列表项下.

任何帮助是极大的赞赏.谢谢!

Pit*_*ari 6

标记的问题是当您尝试在列表中单击时整个菜单会折叠.例如,如果单击"内容区域内的全部",则会折叠"内容区域".对于您的情况,第二级菜单Health也是如此.

这是因为您没有指定手风琴标题.查看Bootstrap Collapse Documentation,您将在其中找到如下示例:

<div class="accordion-heading">
  <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
    Collapsible Group Item #1
  </a>
Run Code Online (Sandbox Code Playgroud)

指定标题后,您的第二级导航应该可以正常工作.

我创造了一个小提琴供你验证.我根据文档修改了内容区域,第二级菜单工作正常.但是,我没有修改语言菜单项,以便您可以看到它的行为(在语言扩展后尝试在列表中单击)


Ray*_*dis 5

虽然与Pitamber的例子类似,但我不会添加一些额外的类,特别是带有"accoridan-heading"类的额外div,只需将该类应用于a标签即可.

<ul class="nav nav-list">
  <li>
    <a>Menu Item with No Sub-Items</a>
  </li>
  <li>
    <a class="accordion-heading" data-toggle="collapse" data-target="#submenu">
      <span class="nav-header-primary">Menu Item with Sub-Items <b class="caret"></b></span>
    </a>
    <ul class="nav nav-list collapse" id="submenu">
      <li><a href="#" title="Title">Sub Item 1</a></li>
      <li><a href="#" title="Title">Sub Item 2</a></li>
      <li><a href="#" title="Title">Sub Item 3</a></li>
      <li><a href="#" title="Title">Sub Item 4</a></li>
    </ul>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

您可以进一步添加CSS和/或一些JS以在子菜单上放置一些对比度,并在菜单项展开和折叠时翻转/更改插入符号图标.