Цвет фона не меняется при наведении - PullRequest
0 голосов
/ 22 октября 2010

Я пытаюсь изменить цвет фона элемента, используя случайные цвета из массива. Есть код:

 $(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 ]

2 голосов
/ 22 октября 2010

Вам необходимо удалить кавычки из 'randomColors[rndNum]', иначе это будет просто строка:

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

ИЛИ

$(this).css({backgroundColor: randomColors[rndNum]}) 
1 голос
/ 22 октября 2010

Изменить эту строку:

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

к этому:

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

Переменная не будет раскрыта, если она находится внутри строки.

1 голос
/ 22 октября 2010

Вам просто нужно удалить кавычки, например:

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

В настоящее время он пытается установить строку как точно 'randomColors[rndNum]', а не значение этой записи в массиве, например '#00eeff'.

...