css将类添加到所选元素

时间:2013-08-11 01:25:55

标签: javascript html css twitter-bootstrap

我正在使用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>

结果如下:

Home | About | Contact

可以在这里看到LIVE版本:

Home | About | Contact - LIVE demo

问题是,我想设置一个且只有一个活跃的<a>,因此如果用户点击了关于,<a class="active">About</a>将被设置为活动状态,而<a>Home</a>将不再被标记为有效。这看起来很常见,应该很容易实现,但是我已经修补了2天而且真的不知道并且来自C和CPP背景,我在javascript中非常弱...你能解释并标记哪个我可以实现这个文件(.css或.js或.html本身)吗?

非常感谢你的帮助!

1 个答案:

答案 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');

   });
});