Twitter Bootstrap - 打开一个菜单,自动关闭另一个菜单

时间:2013-05-19 14:59:25

标签: jquery twitter-bootstrap twitter drop-down-menu

好的,首先,这是我的网站:http://songfreek.com

加载网站后,将打开“用户”菜单,其余菜单将关闭。现在,当我打开另一个菜单(比如“Radio DJ”标签)时,“用户”菜单和“无线电DJ”菜单都会打开。

如果点击“Radio DJ”菜单,我想这样做,然后“用户”菜单会关闭,等等。

这是我的代码,从“用户”菜单到“电台DJ”菜单。

                        <!-- USER -->
                        <li class="nav-header">
                            <a href="#" data-toggle="collapse" data-target="#userMenu">
                                <font color="#333333">User</font> <i class="icon-angle-down"></i>
                            </a>
                            <ul style="list-style: none;" class="collapse in" id="userMenu">
                                <li class="active"><a href="#"><i class="icon-home"></i> Home</a></li>
                                <li><a href="#"><i class="icon-envelope-alt"></i> Messages <span class="badge badge-info">4</span></a></li>
                                <li><a href="#"><i class="icon-cogs"></i> Settings</a></li>
                                <li><a href="#"><i class="icon-comment"></i> Shoutbox</a></li>
                                <li><a href="#"><i class="icon-user"></i> Staff List</a></li>
                                <li><a href="#"><i class="icon-flag"></i> My Infractions</a></li>
                                <li><a href="#"><i class="icon-exclamation-sign"></i> Rules &amp; Regulations</a></li>
                                <li><a href="#"><i class="icon-off"></i> Logout</a></li>
                            </ul>
                        </li>

                        <!-- RADIO DJ -->
                        <li class="nav-header">
                            <a href="#" data-toggle="collapse" data-target="#radioDJMenu">
                                <font color="#34CCFF">Radio DJ</font> <i class="icon-angle-down"></i>
                            </a>
                            <ul style="list-style: none;" class="collapse" id="radioDJMenu">
                                <li><a href="#">Information &amp; Stats</a></li>
                                <li><a href="#">DJ Says</a></li>
                                <li><a href="#">Request Line</a></li>
                                <li><a href="#">Timetable</a></li>
                                <li><a href="#">Banned Songs</a></li>
                            </ul>
                        </li>

1 个答案:

答案 0 :(得分:0)

好的,让我们在songfreek.com上3对3 ...

您可以通过为collapse'show'事件分配功能来关闭任何其他打开的菜单,如下所示:

    $('.collapse').on('show', function (e) {

        // hide open menus
        $('.collapse').each(function(){
          if ($(this).hasClass('in')) {
              $(this).collapse('toggle');
          }
        });
    })

当任何菜单打开时,会触发'show'事件。打开的任何其他菜单都将包含in类,因此collapse('toggle')可用于关闭它们。

我已在 http://bootply.com/61710 更新了Bootply,以证明这一点。