2010-10-22 249 views
0

我试图使用数组中的随机颜色更改元素的背景颜色。有代码:悬停时的背景颜色不变

$(document).ready(function(){ 

var randomColors = ['#00eeff','#fcff00','#9600ff']; 
var rndNum = Math.floor(Math.random() * randomColors.length); 

$("div.anyclass").hover(
     function() { 
$(this).css({'background-color' : 'randomColors[rndNum]'}) 
}, 
     function() { 
$(this).css({'background-color' : '#fff'}); 
     }); 
}); 

所以,它不工作,问题在哪里?

回答

1

你只需要删除引号,像这样:

$("div.anyclass").hover(function() { 
    $(this).css({'background-color' : randomColors[rndNum]}) 
}, function() { 
    $(this).css({'background-color' : '#fff'}); 
}); 

目前,它正试图设置字符串作为正是'randomColors[rndNum]',而不是数组中条目的,例如'#00eeff'

1

改变这一行:

$(this).css({'background-color' : 'randomColors[rndNum]'}) 

这样:

$(this).css({'background-color' : randomColors[rndNum]}) 

变量不会,如果它是一个字符串中扩展。

2

您需要从'randomColors[rndNum]'删除引号,否则就变成了纯粹的字符串:

$(this).css({'background-color': randomColors[rndNum]}) 

OR

$(this).css({backgroundColor: randomColors[rndNum]})