我目前正在更改网站以使用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文件中添加一个
答案 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');