twitter-bootstrap - 带有下拉图标-chevron 的 Bootstrap Accordion 导航

标签 twitter-bootstrap navigation accordion

我有一个 bootstrap nav-tabs nav-stacked 列表,它需要使用 Accordion 来折叠所有列表,除了最近点击的列表,或者有事件的 child 。

我有这个工作,但似乎无法弄清楚如何让雪佛龙改变方向,除非点击。

我以前只设置了这个来做折叠,而不是 Accordion 折叠......所以需要一些 javascript 建议来让它完全正常工作。

jsfiddle:http://jsfiddle.net/utcwebdev/NBcmh/17/
(使用正常的 Bootstrap 标记,加上自定义的 bootswatch css 主题)

这是标记:

<ul id="sidenav01" class="accordion nav nav-department nav-tabs nav-stacked">
    <li>
        <a href="department-mathematics.php"><i class="icon-home"></i> Mathematics</a> 
    </li>
    <li>
        <a href="#li02" data-toggle='collapse' data-target='#subnav01', data-parent='#sidenav01' class="accordion-toggle collapsed"><i class="icon-chevron-up pull-right"></i>Programs </a>
          <ul id="subnav01" class="nav nav-list collapse">
            <li><a href="#1"><i class="icon-home"></i> Programs Home</a></li>
            <li><a href="#2">Undergraduate Program</a></li>
            <li><a href="#3">Graduate Program</a></li>
            <li><a href="#4">Undergraduate Program</a></li>
            <li><a href="#5">Math Plaza</a></li>
            <li><a href="#6">UTeaChattanoga</a></li>
            <li><a href="#7">Placement Criteria</a></li>
            <li><a href="#8">Step Ahead Math</a></li>
          </ul>
    </li>
    <li>
        <a href="#page">A Single Math Page</a> 
    </li>
    <li>
        <a href="#li03" data-toggle='collapse' data-target='#subnav02', data-parent='#sidenav01' class="accordion-toggle collapsed"><i class="icon-chevron-up pull-right"></i>Student Resources</a>
          <ul id="subnav02" class="nav nav-list collapse">
            <li><a href="#pimu">Pi Mu Epsilon</a></li>
            <li><a href="#schol">Scholarships and Awards</a></li>
            <li><a href="#links">Math Links</a></li>
            <li><a href="#advise">Advisement</a></li>
          </ul>
    </li>
    <li>
        <a href="directory.php"><i class="icon-group"></i> Staff Profiles</a> 
    </li>
</ul>

这是javascript:
$(document).on('click', '.accordion-toggle', function(event) {
    event.stopPropagation();
    var $this = $(this);

    var parent = $this.data('parent');
    var actives = parent && $(parent).find('.collapse.in');

    // From bootstrap itself
    if (actives && actives.length) {
        hasData = actives.data('collapse');
        //if (hasData && hasData.transitioning) return;
        actives.collapse('hide');
    }

    var target = $this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); //strip for ie7

    $(target).collapse('toggle');
});

最佳答案

似乎 Accordion 的 Bootstrap 折叠插件没有完全实现。它仅为单击的元素切换折叠的 css 类。

 $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
    var $this = $(this), href
      , target = $this.attr('data-target')
        || e.preventDefault()
        || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
      , option = $(target).data('collapse') ? 'toggle' : $this.data()

    // this line
    $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')

    $(target).collapse(option)
  })

更新
要解决此问题,您只需找到所有切换按钮并对它们执行相同操作:
$(document).on('click.collapse.data-api', '.accordion-toggle', function(event) {
    var $this = $(this),
        parent = $this.data('parent'),
        $parent = parent && $(parent);

    if ($parent) {
        $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed');
    }
});

不要忘记添加 accordion-group类。

http://jsfiddle.net/NBcmh/29/

关于twitter-bootstrap - 带有下拉图标-chevron 的 Bootstrap Accordion 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637911/

相关文章:

css - 如何在 bootstrap 中设置 col 网格

html - Bootstrap Multicolumn Form-horizo​​ntal Styling only one one col-

java - 如何在 JavaFX 中的 Accordion 中的 TitledPanes 之间添加填充

jquery - 单击新选项卡时关闭嵌套的 Jquery Accordion 菜单

javascript - 类型错误 : cannot read property 'css' of null

css - Bootstrap 3 向网格系统添加间距

flutter - 如何修复 GoRouter.of(context).pop() 以便它导航到上一页?

javascript - jQuery .slideToggle 切换时更改 'x' 类背景

html - CSS 下拉导航导致 html 内容移动

java - 如何删除 Java FX Accordion 默认边框?