2011-12-14 10 views
1

要素をクリックしたときにアニメーションを作りたい。要素に 'active'クラスがある場合を除きます。アクティブなクラスを持たないjquery select要素

<div class="collectionContainer"> 
      <div class="collectionName">SPRING SUMMER <br> 2012</div> 
      <div class="collSex"><a href="#" id="collection1-man" class="active"> MAN </a></div> 
      <div class="collSex"><a href="#" id="collection1-woman"> WOMAN </a></div> 
     </div> 

私のjqueryのコード

要素は、私はアクション/アニメーションを作りたくないアクティブなクラスを持っている
$('.collSex a').click(function(){ 
     $('.collSex a').removeClass('active'); 
     $(this).addClass('active'); 
     ... 
     ... 
    }); 

...

私はそれをどのようにすればいい?

答えて

3

あなたは.hasClass[docs]メソッドを使用することができます

$('.collSex a').click(function(){ 
    if(!$(this).hasClass('active')) 
     $('.collSex a.active').andSelf().toggleClass('active'); 
     //... 
    } 
}); 

やイベントの委任を使用:jQueryのhasClassメソッドを使用して、これを試してみてください

$('.collSex').on('click', 'a.active', function() { 
    $('.collSex a.active').andSelf().toggleClass('active'); 
    //... 
}); 
+0

感謝を活用することができます。これは $( '。collSex a')とandSelf()。toggleClass( 'active')である必要があります。 それ以外の場合は、クラスを切り替えることはありません – peterK

+0

しかし、それは 'active'クラスを他のすべてのリンクにも追加します。このように、クラス' active'を持つリンクからそれを削除し、現在のクラスに追加しますリンク。 –

2
$('.collSex a').click(function(){ 
    if($(this).hasClass('active')) 
    ... 
    ... 
}); 
1

を。

$('.collSex a').click(function(){ 
    if(!$(this).hasClass('active')) 
    { 
     //Your code here. 
    } 
}); 
1

多分あなたはそれが働いたないセレクタ

$('collsex a:not(.active)').click(function(){ ....}; 
+0

これは、ページが読み込まれたときに一度だけ評価されます。クラスは実行時に変更されます。 –

+0

良い点、私はそれが生きているが動作しないだろうと思うクリック –

関連する問題