채택완료

jquery 질문

2019-08-29 (목) 10:57:32 3,225

http://airtrek.discoz.co.kr/airtrek/faq.php

여기 사이트에서

FAQ 눌렀을때

 

Copy
$( ".td" ).click(function() {
            $( ".td" ).removeClass( "active" );
        if($( this ).hasClass( "active" )){
            $( ".td" ).removeClass( "active" );
        }else{
            $( this ).addClass( "active" );
        };
    });

이렇게 해서 클릭하면 클레스 추가/삭제가 되는데 기존에 클래스 추가 되있는걸 한번 더 클릭시 클래스 삭제하려면 어떻게 해야 하나요?

|

답변 3개 / 댓글 4개

채택된 답변
+20 포인트
2019-08-29 (목) 11:59:52

아래처럼 적용해보세요.

Copy
$( ".td" ).click(function() {
        if($(this).hasClass( "active" )){
            $(this).removeClass( "active" );
        } else {
           if ($(".td" ).hasClass( "active" )){
            $( ".td" ).removeClass( "active" );
        }
            $(this).addClass( "active" );
       }
    });

답변에 대한 댓글 1개

감사합니다!!
2019-08-29 (목) 11:54:50

1. .td 를 클릭할때 해당 클래스명(active)이 있는지 검사한다. 

2. 있으면 active 클래스를 remove 시킨다

2-1 없으면 active 클래스를 add 시킨다

답변에 대한 댓글 1개

1. .td 를 클릭할때 해당 클래스명(active)이 있는지 검사한다. 가 뭐죠??ㅠㅠ

위의것대로 사용하시면 되는데요..

답변에 대한 댓글 2개

이미 클래스가 추가 되어 있는것을 한번 더 누르면 클래스가 안없어 져서요..
클릭하는 요소에 클래스명 td 및 active 가 있어야 합니다. 그럼 클릭시 active 클래스가 없어집니다.

답변을 작성하려면 로그인이 필요합니다.