在jquery中添加/删除类的问题

时间:2011-01-03 15:17:28

标签: javascript jquery jquery-selectors

我正在尝试创建菜单导航类似于标签但有垂直按钮..当我启动页面时,第一个li类被删除,当我点击任何其他链接nothign发生时,我的内容div被显示。

第一个链接应始终在页面开始时处于活动状态。

<script type="text/javascript">
$(document).ready(function() {

    var tabContainers = $('div.pages > div');

    $('div.sidemenu ul.list a').click(function () {
        tabContainers.hide().filter(this.hash).show();

        $('div.sidemenu ul.list li').removeClass('active');
        $(this).addClass('active');

        return false;
    }).filter(':first').click();


});
</script>
<div class="sidemenu">
  <ul class="list"> 
 <li class="active"><a href="#first">Login & Password</a></li>
 <li><a href="#second">Contact Details</a></li>
 <li><a href="#third">Company & Branch Details</a></li>
 <li><a href="#forth">Address Details</a></li>
  </ul>
</div>

<div class="pages">
  <div id="first">
    CONTENT 1
  </div>
  <div id="second">
    CONTENT 2
  </div>
  <div id="third">
    CONTENT 3
  </div>
  <div id="forth">
    CONTENT 4
  </div>
</div>

不确定我在这里缺少什么..也许它只是醒来,我仍然在我的第一杯咖啡..;)

2 个答案:

答案 0 :(得分:3)

您要将该类添加到<a>元素,但将其从其父<li>元素中删除。

$(this).addClass('active');  // "this" is the <a> that received the event

   // This removes "active" from the <li>
$('div.sidemenu ul.list li').removeClass('active');

您似乎打算让<li>拥有该课程。所以你要这样做:

$(this).parent().addClass('active');

或者,如果你不介意我混合一点DOM API:

$(this.parentNode).addClass('active');

现在去补充! ; O)

答案 1 :(得分:3)

将“活动”类添加到A-Element

$(this).addClass('active');

我想你想把它添加到LI-Element,所以要么添加

$(this).parent().addClass('active');

或者您在LI-Element上注册onclick