【发布时间】:2013-08-01 07:20:10
【问题描述】:
我有一个 html 作为侧边栏,并使用 Bootstrap。
<ul class="nav nav-list">
<li class="active"><a href="/">Link 1</a></li>
<li><a href="/link2">Link 2</a></li>
<li><a href="/link3">Link 3</a></li>
</ul>
我想做点事:
当我click链接3这样的链接时,page content将变为链接3的内容,链接3将有active类,并删除链接1中的活动clss。
我认为这可以在jQuery中实现,并且我在SO中搜索了很多问题,例如:
我使用这个脚本:
$(document).ready(function () {
$('.nav li').click(function(e) {
$('.nav li').removeClass('active');
var $this = $(this);
if (!$this.hasClass('active')) {
$this.addClass('active');
}
//e.preventDefault();
});
});
但他们中的大多数使用preventDefault,这将阻止继续操作。所以不能改成Link 3的页面内容。
如果我删除 preventDefault 语句,当页面加载链接 3 的内容时,活动类将返回链接 1。
那么有什么办法可以解决这个问题吗?
【问题讨论】:
-
为什么要删除
preventDefault()?它将执行preventDefault()之后编写的代码,不用担心。 -
@DKM ,是的,我已经删除了
preventDefault(),但这会加载链接 3,并且活动将返回链接 1。 -
在每个链接后添加一个哈希 (/#link1) 并通过 javascript 读取它,然后在代码中设置条件。它会解决你的问题。
标签: javascript jquery html twitter-bootstrap