2009-01-08 78 views
6

我有一個鏈接和SPAN的DIV。jQuery backgroundColor動畫

單擊鏈接時,它使用AJAX呈現項目列表。單擊某個項目時,SPAN的內容會更改。

我想通過將DIV的背景顏色設置爲綠色並使用jQuery將它重新設爲白色來突出顯示此更改。

var originalColor = elementToUpdate.parentNode.style.backgroundColor; 
    elementToUpdate.style.backgroundColor = 'green'; //lastSender.style.color; 
    jQuery(elementToUpdate.id).animate({ backgroundColor: '#ffffff' }, 1000); 

SPAN的背景在第二行更改爲綠色,但第三行不執行任何操作。沒有錯誤,或改變什麼如此...

任何想法?


編輯:正如特德Naleid在下面評論指出:

另外請注意,你必須有插件安裝 彩色動畫的 這個工作 (http://plugins.jquery.com/project/color) 如果你沒有安裝它,jQuery 不能動畫顏色,只有數字 屬性(至少從1.3.1開始)。

回答

9

如果您已經有元素,則不需要.id。直接把它交給jQuery的:

jQuery(elementToUpdate).animate({ backgroundColor: '#ffffff' }, 1000); 

因爲elementToUpdate.id是一個字符串,它的jQuery(可能)解釋爲一個選擇你不會得到一個錯誤。它恰好是一個不選擇任何東西的選擇器。

或者,你可以說這使它成爲一個有效的選擇:

jQuery('#' + elementToUpdate.id).animate({ backgroundColor: '#ffffff' }, 1000); 

但我認爲第一種形式是可取的,因爲你已經擁有的元素本身。

+2

另請注意,您必須安裝顏色動畫插件才能使其正常工作(http://plugins.jquery.com/project/color),如果您沒有安裝它,jQuery無法設置動畫顏色,只有數字屬性(至少從1.3.1開始)。 – 2009-02-05 02:56:07