2011-12-14 2 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 코드 요소가 활성 클래스 I 액션/애니메이션을 만들고 싶어하지 않는있다

$('.collSex a').click(function(){ 
     $('.collSex a').removeClass('active'); 
     $(this).addClass('active'); 
     ... 
     ... 
    }); 

...

내가 어떻게해야합니까?

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

답변

3

당신은 .hasClass[docs] 방법을 사용할 수 있습니다

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

또는 이벤트 위임을 사용합니다.

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

덕분에 활용할 수 있습니다. $ ('. collSex a') andSelf(). toggleClass ('active'); 그렇지 않으면 클래스를 전환하지 않습니다 – peterK

+0

하지만 다른 모든 링크에도'active' 클래스를 추가 할 것입니다. 이렇게하면 클래스'active'가있는 링크에서이를 제거하고 현재 링크에 추가합니다 링크. –

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

이 사용 jQuery를 hasClass 방법을 시도해보십시오

1

어쩌면 당신은 하지 선택의이 일

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

페이지가로드 될 때 한 번만 평가됩니다. 클래스는 런타임 중에 변경됩니다. –

+0

좋은 지적이지만, 라이브에서는 작동하지만 클릭으로는 작동하지 않을 것이라고 생각합니다. –

관련 문제