2013-08-27 13 views
20

Ta funkcja dodaje do mojego przycisku klasę rotated po jej kliknięciu. Przycisk ma strzałkę wskazującą kierunek przesunięcia panelu.removeClass() jeśli istnieje

Jak mogę usunąć obróconą klasę po ponownym kliknięciu przycisku?

$("#btnDiv").click(function(){ 
    $('#slidePanel').toggle("slide",{direction: 'right'}); 
    $('#btnDiv').addClass('rotated'); 
}); 

Może coś takiego?

if('rotated'){ 
    removeClass('rotated') 
}else{ 
    addClass('rotated') 
} 

Odpowiedz

45

Można użyć .toggleClass()

$('#btnDiv').toggleClass('rotated'); 

który dodaje go, jeśli brakuje i usuwa je, jeśli jest obecny. Jest też .is() aby sprawdzić takie rzeczy:

if ($('#btnDiv').is('.rotated')) 

lub prościej:

if ($('#btnDiv').hasClass('rotated')) 
+2

... i jeśli kiedykolwiek trzeba sprawdzić, czy klasa jest ustawiona: 'hasClass()': http://api.jquery.com/ hasClass/ – gvee

+0

Doskonale! Co za szybka naprawa! Pozdrawiam Pointy! – Daft

+0

@ Virus721 nie trzeba sprawdzać, czy wszystko, co chcesz zrobić, to dodać klasę; '.addClass()' nie doda go dwa razy. – Pointy

1

Wystarczy użyć .toggleClass() do acheive że.

5

Spróbuj

if($('#btnDiv').hasClass('rotated')){ 
    $('#btnDiv').removeClass('rotated') 
}else{ 
    $('#btnDiv').addClass('rotated') 
} 
1
if($('#btnDiv').hasClass('rotated')){ 
    $('#btnDiv').removeClass('rotated') 
}else{ 
    $('#btnDiv').addClass('rotated') 
} 
1
$("#btnDiv").click(function(){ 
    $('#slidePanel').toggle("slide",{direction: 'right'}); 
    if($('#btnDiv').hasClass('rotated')){ 
      $('#btnDiv').removeClass('rotated'); 
    } 
    else{ 
     $('#btnDiv').addClass('rotated'); 
    } 
    }); 
Powiązane problemy