2017-06-22 45 views
0

你好我已经使代码的和平,以便改变盒子的颜色,当鼠标进入它的区域。在mouseenter上有一个事件,我做了一个函数,它应该从Array返回一个随机颜色。它似乎没有工作。将盒子的颜色更改为事件上的随机数组元素

$("#colorBox1Id").mouseenter(function(){ 
    $(this).css("background-color", SelectRandomColor) 
}); 


function SelectRandomColor() { 
    var colorArray= new Array("blue", "red", "yellow", "green"); 
    var selectedColor = colorArray[Math.floor(Math.random*colorArray.length)]; 

    return selectedColor; 
}` 

我希望有人有一个建议来解决这个问题。

+2

你打电话时随机忘了括号,它应该是的Math.random() – william205

回答

0

尝试colorArray[Math.floor(Math.random()*colorArray.length)];

$("#colorBox1Id").mouseenter(function() { 
 
    $(this).css("background-color", SelectRandomColor) 
 
}); 
 

 

 
function SelectRandomColor() { 
 
    var colorArray = new Array("blue", "red", "yellow", "green"); 
 
    var selectedColor = colorArray[Math.floor(Math.random() * colorArray.length)]; 
 

 
    return selectedColor; 
 
}
#colorBox1Id { 
 
    width: 100px; 
 
    height: 100px; 
 
    border: 1px solid #ddd; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="colorBox1Id"> 
 
    Colorbox 
 
</div>

+0

它应该是'Math.floor(的Math.random()*(colorArray.length + 1))'带来近乎完美的均匀分布。 – Przemek

0

你忘了打电话给random

var selectedColor = colorArray[Math.floor(Math.random()*colorArray.length)]; 
                ^^