2013-08-27 12 views
20

Questa funzione aggiunge una classe rotated al mio pulsante quando faccio clic. Il pulsante ha una freccia su di esso che punta nella direzione in cui il pannello è scivolato.removeClass() se esistente

Come posso rimuovere la classe ruotata quando faccio di nuovo clic sul pulsante?

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

Qualcosa di simile forse?

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

risposta

45

È possibile utilizzare .toggleClass()

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

che aggiunge, se manca, e lo rimuove se è presente. C'è anche .is() per verificare la presenza di cose del genere:

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

o più semplicemente:

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

... e se mai bisogno di controllare se una classe è impostato: 'hasClass()': http://api.jquery.com/ hasClass/ – gvee

+0

Eccellente! Che soluzione rapida! Applausi a punta! – Daft

+0

@ Virus721 non è necessario controllare se tutto ciò che si vuole fare è aggiungere la classe; '.addClass()' non lo aggiungerà due volte. – Pointy

1

Basta usare .toggleClass() per realizzare quello.

5

Prova questo

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'); 
    } 
    }); 
Problemi correlati