2017-01-06 3 views
2

Когда нажата кнопка div, я хотел бы изменить тело на случайный цвет в массиве цветов. Этот код работает, но он работает только при первом щелчке. Что я могу изменить для тела, чтобы изменить цвет КАЖДЫЙ раз, когда нажата кнопка?Изменение цвета фона фона при каждом нажатии div

var colors = ["#3b609b", "#9b3b3b", "#3b9b81", "#7da5a4"]; 
var rand = Math.floor(Math.random() * colors.length); 

$(".button").click(function() { 
    $("body").css("background-color", colors[rand]); 
}) 
+5

поставить эту строку 'вар ранд = Math.floor (Math.random() * colors.length)' в вашей мыши функции;) – d3vi4nt

+1

вы устанавливаете 'rand' только один раз, но вы хотите установить его каждый раз, когда нажимается 'div'. – d3vi4nt

+0

@ d3vi4nt Ничего себе, не могу поверить, что я пропустил это благодаря этому! – Zach

ответ

6

В коде значение переменной rand остается одинаковой для каждого клика.

Вам нужно будет обновить это значение в каждом клике, поэтому поместите эту строку кода var rand = Math.floor(Math.random() * colors.length) в обработчик кликов.

var colors = ["#3b609b", "#9b3b3b", "#3b9b81", "#7da5a4"]; 
 

 

 
$(".button").click(function() { 
 
    var rand = Math.floor(Math.random() * colors.length); 
 
    $("body").css("background-color", colors[rand]); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1>Gaurav</h1> 
 
<button class="button"> Change Color</button>

+0

Спасибо, это сработало! – Zach

+0

@ Zach счастливое кодирование –

Смежные вопросы