2011-12-14 48 views
1

我想在用戶點擊一個元素時製作一個動畫。除非元素具有「活動」類。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'); 
     //... 
    } 
}); 

或使用事件委派:

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

感謝它的工作。它必須是 $('。collSex a')。andSelf()。toggleClass('active'); 否則它不會切換類 – peterK 2011-12-14 15:39:52

+0

但是,這樣會將「active」類添加到所有其他鏈接......這樣,它將從類active的鏈接中刪除它並將其添加到當前鏈接。 – 2011-12-14 15:40:50

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

試試這個使用jQuery hasClass方法。

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

也許你可以採取選擇的優勢

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