【问题标题】:Change color of box to random array element on an event在事件中将框的颜色更改为随机数组元素
【发布时间】:2017-11-26 01:20:45
【问题描述】:

您好,当鼠标进入它的区域时,我已经编写了这个代码以更改框的颜色。 mouseenter 上有一个事件,我创建了一个函数,它应该从数组中返回随机颜色。它似乎不起作用。

$("#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;
}`

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

【问题讨论】:

  • 你在调用random的时候忘记了括号,应该是Math.random()

标签: javascript jquery html jquery-selectors jquery-events


【解决方案1】:

试试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>

【讨论】:

  • 它应该是 Math.floor(Math.random() * (colorArray.length + 1)) 以实现完美均匀的分布。
【解决方案2】:

你忘了打电话给random

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

【讨论】:

    猜你喜欢
    • 2020-04-16
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    相关资源
    最近更新 更多