带有jQuery和Bootstrap 3的可折叠响应侧边栏菜单

时间:2013-09-06 14:33:37

标签: jquery html twitter-bootstrap collapse twitter-bootstrap-3

我有两个问题。

  1. 当项目被点击时,显示它并隐藏所有其他项目
  2. 可折叠的响应式侧边栏,如navbar
  3. 首先我的jsFiddle演示: http://jsfiddle.net/JpJqD/1/

    我正在努力做可折叠的侧边栏菜单。

    正如你在演示中看到的那样;当我点击articles时,应该折叠(隐藏)其他人。然后,如果点击usersarticles和其他具有子级别的项目应该崩溃(隐藏)。所以总是应该打开一个菜单。

    我尝试使用Bootstrap文档中的collapse,但我无法使用以下代码:

    $('#sidebar a').on('click', function () {
        $(this).closest('div').find('.collapse').collapse('hide');
        $(this).collapse('show');
    });
    

    我可以使用accordion执行此操作,但我不想因为所有项目都需要panel课程。

    BTW我想为手机和平板电脑制作响应式侧边栏,例如navbar菜单?我在Bootstrap文档中使用过,但没有用。

    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
    

2 个答案:

答案 0 :(得分:16)

这就是我所做的,希望它符合您的需求:

<div class="panel panel-default">
    <div class="panel-heading">
        <h3>Navigation</h3>

    </div>
    <div id="sidebar" class="list-group"> 

        <a href="#" class="list-group-item active">
            <i class="icon-dashboard"></i> Dashboard
        </a>

        <a href="#users" class="list-group-item"  data-parent="#sidebar">
            <i class="icon-group"></i> Users
            <span class="badge bg_danger">0</span>
        </a>

        <div id="users" class="list-group subitem collapse">    

            <a href="#" class="list-group-item">
                <i class="icon-caret-right"></i> Users
                <span class="badge bg_danger">0</span>
            </a>

            <a href="#" class="list-group-item">
                <i class="icon-caret-right"></i> Create User
            </a>

            <a href="#" class="list-group-item">
                <i class="icon-caret-right"></i> Create Group
            </a>

        </div>  

        <a href="#articles" class="list-group-item"  data-parent="#sidebar">
            <i class="icon-file-text"></i> Articles
            <span class="badge bg_danger">0</span>
        </a>

        <div id="articles" class="list-group subitem collapse"> 

            <a href="#" class="list-group-item bg_warning">
                <i class="icon-caret-right"></i> Articles
                <span class="badge bg_danger">0</span>
            </a>

            <a href="#" class="list-group-item">
                <i class="icon-caret-right"></i> Create Article
            </a>

        </div>

    </div>
</div>

这是相应的js:

$('#sidebar > a').on('click', function (e) {
    e.preventDefault();

    if(!$(this).hasClass("active")){
        var lastActive = $(this).closest("#sidebar").children(".active");
        lastActive.removeClass("active");
        lastActive.next('div').collapse('hide');
        $(this).addClass("active");
        $(this).next('div').collapse('show');

    }

});

答案 1 :(得分:1)

如果您正在寻找带动画的自动可折叠侧边栏,那么根据我这个是最好的


<强>代码
https://github.com/IronSummitMedia/startbootstrap-simple-sidebar


<强>演示
http://ironsummitmedia.github.io/startbootstrap-simple-sidebar