2013-08-27 14 views
20

Bu işlev tıklattığımda düğüme rotated sınıfı ekler. Düğmenin üzerinde, panelin kaydığı yönde işaret eden bir ok vardır.removeClass() varsa

Düğmeye tekrar bastığımda nasıl döndürülmüş sınıfı kaldırabilirim?

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

Böyle bir şey olabilir mi?

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

cevap

45

Bunu mevcut ise bunu o eksik varsa bunu ekler ve kaldırır .toggleClass()

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

kullanabilirsiniz. bunun gibi şeyler için kontrol etmek de .is() vardır: daha basit

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

ya:

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

deneyin ... ve hiç bir sınıf ayarlanmış olup olmadığını kontrol etmek gerekirse: ')' hasClass (: http://api.jquery.com/ hasClass/ – gvee

+0

Mükemmel! Ne hızlı bir düzeltme! Şerefe! – Daft

+0

@ Virus721 yapmak istediğiniz tüm şeylerin sınıfta olup olmadığını kontrol etmeniz gerekmiyor; '.addClass()' iki kere eklemez. – Pointy

1

Sadece bu modernleşmek için .toggleClass() kullanın.

5

bu

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