2010-07-18 72 views
1

我有以下設置:的jQuery + CSS:切換到「加載」

<div class="click red"></div> 
<div class="click green"></div> 
<div class="click blue"></div> 

當「點擊」點擊我要的類「負載」添加到div。我已經管理好了,但「紅色」,「綠色」和「藍色」都設置了背景圖像,所以我需要刪除該類。現在,我知道如何做到這一點草率的方式,我採取了類「點擊藍色」(由jquery返回),然後刪除我所需要的,並取而代之這是令人難以置信的馬虎,我可以'不要認爲它是正確的方法。

解決這個問題的正確方法是什麼?我需要從div中刪除第二個類,並將其替換爲「load」類。 .attr(「class」)[2]是否有某種方法可以分別調用每個類?

回答

2

如果你知道類是「點擊」,你可以設置類,而不是添加/刪除它,就像這樣:

$('div').attr('class', 'click load'); 

如果您知道類(不知道這是一個簡單的例子)要刪除,你可以這樣做:

$("div").removeClass('red green blue').addClass('load'); 

編輯:基於在評論 - 您可以使用$.data()存儲類,後來抓住它的負荷後恢復,就像這樣:

在你點擊功能:

$.data(this, 'class', $(this).attr('class')); //store the original class 
$(this).attr('class', 'click load');   //set loading class 

然後在以後恢復它:

$(this).attr('class', $.data(this, 'class')); //restore orignal class 
+0

雖然我需要保留後一類的恢復。我猜這個方法會創建一個包含當前類的變量,然後將其替換爲「click load」,然後恢復爲變量?聽起來可行,謝謝! – sam 2010-07-18 12:12:28

+0

@ user265331 - 啊一秒鐘,我會更新如何做到這一點:) – 2010-07-18 12:13:10

+0

這很好,我知道如何,我只是在問關於理論:-)只要網站讓我(10分鐘等待)。謝謝! – sam 2010-07-18 12:14:00