背景颜色在悬停时不会改变

时间:2010-10-22 17:44:10

标签: jquery hover

我正在尝试使用数组中的随机颜色更改元素的背景颜色。有代码:

 $(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'});
        });
});

所以,它不起作用,问题出在哪里?

3 个答案:

答案 0 :(得分:2)

您需要从'randomColors[rndNum]'删除引号,否则它会变成一个字符串:

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

OR

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

答案 1 :(得分:1)

您只需要删除引号,如下所示:

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

目前,它正在尝试将字符串设置为完全 'randomColors[rndNum]',而不是数组中该条目的,例如'#00eeff'

答案 2 :(得分:1)

更改此行:

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

到此:

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

如果变量在字符串中,则不会展开。