如何在Navbar-Fixed-Top中突出显示活动选项卡

时间:2015-08-03 11:04:21

标签: javascript jquery html css twitter-bootstrap

我目前正在更改网站以使用Bootstrap,我被告知他们想要使用navbar-inverse navbar-fixed-top主菜单。

问题是,我无法弄清楚如何突出显示所选页面并将其突出显示。

我已经尝试了跟随Jquery,但我不能让它们都没有工作

 $(function() {
    $('#nav li a').click(function() {
       $('#nav li').removeClass();
       $($(this).attr('href')).addClass('active');
    });
 });

我的菜单的HTML是:

    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" runat="server" href="~/">Logo Here</a>
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li><a runat="server" href="~/"><span class="glyphicon glyphicon-home"></span></a></li>
                    <li style="border-left: 1px solid lightgray"><a runat="server" href="~/About">About</a></li>
                    <li style="border-left: 1px solid lightgray"><a runat="server" href="~/Session/pg1">Session</a></li>
                    <li style="border-left: 1px solid lightgray"><a runat="server" href="~/EmailPg">Email</a></li>
                </ul>
                <asp:LoginView runat="server" ViewStateMode="Disabled">
                    <AnonymousTemplate>
                        <ul class="nav navbar-nav navbar-right">
                            <li><a runat="server" href="~/Contact">Contact us</a></li>
                        </ul>
                    </AnonymousTemplate>
                </asp:LoginView>
            </div>
        </div>
    </div>

我更喜欢用CSS或Jquery做它可能但我也有点困惑,我是否将Jquery添加到每个页面或者我可以在我的Site.Master文件中添加一个

2 个答案:

答案 0 :(得分:0)

您没有正确选择有效的li标记。

相反,我建议你使用这样的东西:

$(function() {
    $('#nav li a').click(function() {
        $(this).closest('li') // select the parent <li> tag
        .addClass('active')// add the active class
        .siblings() // select the siblings of the active tag
        .removeClass('active'); // remove the active class from the other <li>
    });
});

答案 1 :(得分:0)

通过将以下JQuery添加到我的Site.Master文件

来解决
var url = window.location;
// Will only work if string in href matches with location
$('ul.nav a[href="' + url + '"]').parent().addClass('active');

// Will also work for relative and absolute hrefs
$('ul.navbar-nav a').filter(function () {
    return this.href == url;
}).parent().addClass('active');