我正在使用twitter bootstrap并编写标题我有这样的一个
<ul class="nav navbar-nav">
<li><a href="#" class="active" onclick="$(this).addClass('active')">Home</a></li>
<li class="currentselection"><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
结果如下:
可以在这里看到LIVE版本:
Home | About | Contact - LIVE demo
问题是,我想设置一个且只有一个活跃的<a>
,因此如果用户点击了关于,<a class="active">About</a>
将被设置为活动状态,而<a>Home</a>
将不再被标记为有效。这看起来很常见,应该很容易实现,但是我已经修补了2天而且真的不知道并且来自C和CPP背景,我在javascript中非常弱...你能解释并标记哪个我可以实现这个文件(.css或.js或.html本身)吗?
非常感谢你的帮助!
答案 0 :(得分:1)
你用twitter-bootstrap标记了这个,那么这是否意味着你运行了jQuery?如果是这样,那么这很容易解决。
你只需设置这样的CSS:
.nav li a { color: #000; background: #FFF; }
.nav li a.active { color: #FFF; background: #FF0000 }
然后,您可以通过在脚本中的某处放置一个jQuery侦听器来更改元素上的“active”类。在这种情况下,您正在聆听某人点击它:
$(function() {
$('ul.nav li a').on('click', function(e) {
//this line prevents the link for actually redirecting you
e.preventDefault();
//this line clears whatever the previous active link was
$(this).closest('ul').find('li a.active').removeClass('active');
//this line adds the class to the current link
$(this).addClass('active');
});
});