2012-01-22 14 views
0

私は修正したスクリプトで少し助けが必要です。mouseoverのmouseleaveでアクティブなクラスを追加/削除します

私はサブメニューを作成しましたが、ここではホバリング中に.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> 

クラスを削除すると、うまく動作しますが、追加クラスが動作していない

これは、これまでのところ、私のコードです。 私が試した:

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

編集: を私はここで再び、私の問題の正しい処方をしなかった:

私が前にアクティブだった李覚えていて、それを設定したいですliマウスがナビゲーションバーを離れるとき。

たとえば、ニュースが有効です。ホバリングニュースの間、それはもはやアクティブではありませんが、他のすべてのものはスライドしています。ナビゲーションバーからマウスを削除すると、ニュースが再度アクティブになるはずです。

私はクラスactive_2を持つリチウムを検索すべきであると考え、その後、addClassは

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

をactive_2しかし、これは正しい選択ではないように思われます。助言がありますか?

答えて

2

クラスの追加と削除のドットを必要としない...

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

は、それが働いたありがとう:)しかし、それdoesntの李を覚えている。今私は前に移動した李にクラスを追加します。しかし、私はクラスを一度追加したわけではありません。なにか提案を? – JPM

+0

@ JPM、これはすでに正しく答えられました。元の質問の意味を、すべての正解が無効になるまで変更しないでください。 – Sparky

+0

私の間違いを犯してください。以前私の間違った質問を認識していませんでした。 – JPM

関連する問題