2011-02-15 22 views
11

Örn:Özel sınıfı jQuery ile nasıl değiştirebilirim?

<li class="dataItem ready igto" status="ready">I will change status to waiting</li> 

sonra, sadecesınıf hazır kaldırıp yeni sınıf eklenmesi hayranlarıyla normal bir yoldur bekleyeniçin hazır sınıfını değiştirmek istiyorum!

ve başka bir durum, aynı anda birden çok sınıfın nasıl değiştirileceğidir !? Örn: için

<!-- replace done wainting error to ready --> 
<li class="dataItem done igto" status="ready">I will change status to ready</li> 
<li class="dataItem waiting igto" status="ready">I will change status to ready</li> 
<li class="dataItem error igto" status="ready">I will change status to ready</li> 

:

<li class="dataItem ready igto" status="ready">I will change status to waiting</li> 

Çok teşekkür ederim !!

cevap

21

JQuery'de "anahtarlama" sınıfları olmadığından, dersi en iyi şekilde yapmanız, sınıfı kaldırın ve tekrar ekleyin.

$('.dataItem').removeClass('ready').addClass('waiting'); 

Sen .removeClass() içine birden fazla sınıfa geçerek birden çok sınıf değiştirebilirsiniz: Sen bunu başarmak için $.toggleClass() kullanabilirsiniz

$('.dataItem').removeClass('done waiting error').addClass('ready'); 
24

.

$("p").click(function(){ 
    // Replace 'done' with 'waiting' or 'waiting' with 'done' 
    $(this).toggleClass("done waiting"); 
}); 

Örnek: http://jsfiddle.net/wH9x3/

+1

+ 1 Birinci ve temiz. – JCOC611

+0

Güvenilir değil, çünkü istemediğimiz zaman bile, her zaman değişecektir. – sidney

+0

@sidney Amaç, $ .fn.toggleClass'ın nasıl çalıştığını göstermektir. Sadece belirli koşullar altında yürütmek için onu koşullu olarak sarmak için kullananlara kalmış. – Sampson

İlgili konular