2009-01-08 94 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