【发布时间】:2018-07-31 11:54:31
【问题描述】:
此问题有两种情况:
使用 preventDefault()
不使用 preventDefault()
我正在使用 jQuery 更改活动类。
当我使用 preventDefault() 时会发生什么:
如您所见,我点击了关于我们的链接,点击后显示为活动状态,但内容未显示。
当我不使用 preventDefault() 时会发生什么:
如您所见,我在这里点击了关于我们的链接,内容显示正常,但活动课程仍在主页链接中。
如何解决这个问题?我找到了这个链接:
How to change active class while click to another link in bootstrap use jquery?
但是这里的问题没有解决。我尝试了每个 jQuery,但都没有成功。
代码:
<nav class="navbar navbar-default navbar-static-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar2">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="Default.aspx"><img src="images/layout/check1.png" style="width:310px;padding-left:82px;height:60px;" class="img-responsive" alt="dubaiexporters.com"/>
</a>
</div>
<div id="navbar2" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li class="active" style="font-family:Merriweather;"><a href="Default.aspx">Home</a></li>
<li class="menu" style="font-family:Merriweather;"><a href="advertize.aspx">Advertise</a></li>
<li class="dropdown" style="font-family:Merriweather;">
<a href="exhibition.aspx" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Exhibitions <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li style="font-family:Merriweather;"><a href="dubaiexhibitions.aspx">Trade fairs in U.A.E</a></li>
<li style="font-family:Merriweather;"><a href="exhibition.aspx">Trade fairs worldwide</a></li>
<li style="font-family:Merriweather;"><a href="addexhibition.aspx">Add Your Event</a></li>
</ul>
</li>
<li style="font-family:Merriweather;"><a href="subscribe.aspx">Subscribe</a></li>
<li style="font-family:Merriweather;"><a href="member_benefits.aspx">Memberships</a></li>
<li style="font-family:Merriweather;"><a href="aboutus.aspx">About us</a></li>
<li style="font-family:Merriweather;"><a href="news.aspx">News</a></li>
<li style="font-family:Merriweather;"><a href="contactus.aspx">Contact us</a></li>
<li style="font-family:Merriweather;"><a href="media_partners.aspx">Partners</a></li>
<li style="font-family:Merriweather;"><a href="login.aspx"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
<a href="addlisting.aspx" target="_blank" class="floatingbanner"></a>
</div>
<!--/.nav-collapse -->
</div>
<!--/.container-fluid -->
</nav>
jquery:
$(document).ready(function () {
$('.nav li a').click(function (e) {
$('.nav li.active').removeClass('active');
var $parent = $(this).parent();
$parent.addClass('active');
//e.preventDefault();
});
});
【问题讨论】:
-
jquery 是客户端。如果您想在单击后加载新页面,则链接将重新加载并删除该类。您要么必须在新页面的内容中添加 ajax,要么使用服务器端语言添加类,或者使用 jquery 在页面加载时重新添加类(我推荐选项 2)
-
@Pete 对此问题或与此问题相关的任何其他链接是否有任何解决方案?
-
@Pete 是的...我正在使用 c#