2011-10-05 4 views
2

내 웹 페이지는 http://www.sarahjanetrading.com/js/status하나의 목록 항목에 활성 클래스가있을 때 jQuery 함수를 사용하면 다른 모든 목록 항목에 자동으로 활성 클래스가 없기를 원합니다?

누구나 액세스 할 수있는 모든 HTML, CSS 및 jQuery 코드 + 이미지를 사용할 수 있습니다.

내 문제는 현재 내가 가지고있는 jQuery 코드는 활성 상태가 목록 항목에서 전환 할 수 있다는 것입니다. 내가 원했던 것은 하나의 목록 항목이 클릭되었을 때 활성 (활성 클래스)이되고 다른 모든 항목은 활성 클래스가 제거되어야한다는 것입니다.

감사

답변

3

I 해요 100 % 확실히 당신이 원하는 무엇을 따르지만,이 코드는 다른 모든 형제 자매에서 활성 클래스를 제거하고 결코 하나 개 이상의 항목을 가지고있다 그래서 현재를 전환합니다 액티브 한 클래스 현재 클릭 한 항목이 활성화되고 다른 모든 unactive 될 것을 당신이 원하는 것은 경우

$(function() { 
    $('#status li').click(function(){ 
     var self = $(this); 
     self.siblings().removeClass('active'); 
     self.toggleClass('active'); 
    }); 
}); 

, 당신은 모든 toggleClass를 사용하지 않습니다. 이와 단순히 더 많은 일을 할 수 있습니다

다음
$(function() { 
    $('#status li').click(function(){ 
     var self = $(this); 
     self.siblings().removeClass('active'); 
     self.addClass('active'); 
    }); 
}); 
+0

이 역시 좋습니다. 한 가지 문제는 활성 요소 자체를 클릭하면 해당 요소의 클래스도 제거된다는 것입니다. 그건 내가 원하는 것이 아니었다. 그래도 시간을내어 주셔서 감사합니다 :) – user967211

+0

내가 말했듯이, 당신의 질문은 내게 완전히 명확하지 않았습니다. 원하는 항목이 현재 클릭 된 항목이 활성 상태가되고 다른 모든 항목이 활성 클래스를 제거한 경우,이를 수행 할 내 대답에 두 번째 예제를 추가했습니다. 귀하의 코드는 toggleClass를 사용하고 있었기 때문에 그것이 당신이 원한 것이라고 생각했습니다. 그러나 나는 그렇지 않습니다. – jfriend00

+0

감사! 이것은 내가 원하는 것입니다. 그리고 코드도 적습니다. 감사합니다 :) – user967211

2
$(function() { 
    var lis = $('#status li'); 
    lis.click(function() { 
     lis.removeClass('active won-active'); 
     $(this).addClass('active') 
    }); 

    lis.filter('.won').click(function() { 
     $(this).toggleClass('won-active') 
    }); 
}); 

가 작동 jsFiddle입니다 : jfriend00하는 http://jsfiddle.net/thomas_peklak/smMT5/1/

+0

고마워! 이것은 완벽 해 !! – user967211

0

유사 코드, 조금 청소기를. 다른 코드가 한 번에 하나 이상의 활성을 설정하지 않는다고 가정합니다 ...

$(function() { 
    $('#status li').click(function(){ 
     $(this).siblings().andSelf().toggleClass('active'); 
    }); 
}); 
+0

이것은 작동하지 않습니다. 활성 항목을 클릭하면 해당 항목이 켜지고 다른 항목은 모두 켜집니다. 나는 이것이 OP가 원하는 것이라고 생각하지 않는다. – jfriend00

+0

정확합니다. 두 번째 코드 예제가 더 나은 내기 일 것입니다. – ShaneBlake

관련 문제