使用jquery将Nav li更改为active - Bootstrap

时间:2013-07-20 21:41:44

标签: jquery twitter-bootstrap

当我点击链接时,我想更改导航栏中的Active类(使用bootstrap)。

这是我的HTML:

            <div class="navbar navbar-fixed-top navbar-inverse">
            <div class="navbar-inner">
                <div class="container">
                    <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="brand" href="#">Phonebook</a>
                    <div class="nav-collapse collapse">
                        <ul class="nav">
                            <li class="active"><a href="#">Home</a></li>
                            <li><a href="#about">About Us</a></li>
                            <li><a href="#contact">Contact</a></li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>

我已经尝试过从网站上的答案中获得的以下jQuery代码,但它不起作用。

这是代码:

        $(document).ready(function () {
        $('.nav li a').click(function (e) {
            var $this = $(this);
            if (!$this.hasClass('active')) {
                $this.addClass('active');
            }
            debugger;
            e.preventDefault();
        });
    });

1 个答案:

答案 0 :(得分:1)

你让它复杂化了:

$(document).ready(function () {
    $('.nav li').on('click', function (e) {
        $(this).addClass('active').siblings().removeClass('active');
    });
});

FIDDLE

为什么要添加哈希链接到锚点,然后在事件处理程序中使用preventDefault?