在mouseover mouseleave上添加/删除活动类

时间:2012-01-22 15:51:48

标签: jquery

我需要对我修改的脚本提供一些帮助。

我已经创建了一个子菜单,现在我想在悬停时删除.active_2类。如果删除鼠标类,则应添加.active_2。

到目前为止,这是我的代码:

    $(function() {
      var $menu = $('#sub_nav');

      $menu.children('li').each(function(){
        var $this = $(this);
        var $span = $this.children('span');
        $span.data('width',$span.width());

        $this.bind('mouseenter',function(){
          $menu.find('.sub_nav_sub').stop(true,true).hide();
          $menu.find('.active_2').removeClass();
          $span.stop().animate({'width':'170px'},300,function(){
            $this.find('.sub_nav_sub').slideDown(300);
          });
          }).bind('mouseleave',function(){
            $this.find('.sub_nav_sub').stop(true,true).hide();
                            /* addClass here */
            $span.stop().animate({'width':$span.data('width')+'px'},300);
          });
      });
    });

CSS:

.active_2, .active_2 a {
  background: #FBD009;
  color: #000000!important;
}

HTML:

<ul id="sub_nav" class="sub_nav">
  <li class="active_2"><a href="aktuelles.html">News</a></li>

  <li><span>Termine</span>
    <ul class="sub_nav_sub">
      test
    </ul>
  </li>
</ul>

删除Class工作正常,但添加类不起作用。 我试过了:

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

编辑: 我没有正确地解决我的问题,所以再次在这里:

我想记住之前哪个li处于活动状态,并在鼠标离开导航栏时将其设置为li。

例如:新闻活跃。在徘徊新闻时,它不再活跃,但所有其他人都在滑过。如果我从导航栏中删除鼠标,则应该再次激活新闻。

我认为我应该搜索具有类active_2然后addClass active_2

的li
$(this).find('li.active_2').addClass('active_2');

但这似乎不是正确的选择。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

添加和删除类不需要点...

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

答案 1 :(得分:2)

删除期间......

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

http://api.jquery.com/addClass/