Javascript随机数和背景从按钮更改

Javascript随机数和背景从按钮更改,javascript,button,random,numbers,Javascript,Button,Random,Numbers,我有麻烦了。我期待着按下一个按钮,并有一个随机数返回到一个文本框。如果数字是偶数,我想把背景颜色改成红色,如果是奇数,我想把背景颜色改成黑色。我让它几乎工作,但它不会继续改变背景颜色,当我一直按下按钮,它只做第一个。这是我的密码。任何帮助都将不胜感激 <script type="text/javascript"> function BackgroundEven(){ document.body.style.backgroundColor="#DA0505"; } function

我有麻烦了。我期待着按下一个按钮,并有一个随机数返回到一个文本框。如果数字是偶数,我想把背景颜色改成红色,如果是奇数,我想把背景颜色改成黑色。我让它几乎工作,但它不会继续改变背景颜色,当我一直按下按钮,它只做第一个。这是我的密码。任何帮助都将不胜感激

<script type="text/javascript">

function BackgroundEven(){
document.body.style.backgroundColor="#DA0505";
}
function BackgroundOdd(){
document.body.style.backgroundColor="#000000";
}

function Random() {

return Math.floor(Math.random()*37);
}

var rando= Random();
function Change(){
if(rando%2 == 0)
{
BackgroundEven();
} 
else{
BackgroundOdd();
}
}
}

</script>

<input type="text" name="Result" value="" id="Random" size="5"/>
<input type="button" value="Spin" onclick="document.getElementById('Random').value=Random();Change();" />
</input>

函数背景偶数(){
document.body.style.backgroundColor=“#DA0505”;
}
函数背景奇数(){
document.body.style.backgroundColor=“#000000”;
}
函数随机(){
返回Math.floor(Math.random()*37);
}
var rando=Random();
函数更改(){
如果(随机数%2==0)
{
背景甚至();
} 
否则{
背景奇数();
}
}
}

试试
数学地板(Math.random()*2)
,表示0或1。

您正在单击
onclick
中生成一个随机数,然后使用新生成的随机数进行奇偶校验。您需要确保检查输入中填充的随机数:

<input type="button" value="Spin" onclick="Change(document.getElementById('Random').value=Random());" />

function Change(currentNum) {
  if(currentNum % 2 == 0)
    BackgroundEven();
  else
    BackgroundOdd();
}

函数更改(currentNum){
如果(currentNum%2==0)
背景甚至();
其他的
背景奇数();
}

请注意,我是如何将新分配的随机数传递给
Change()
函数的,因此它的操作与输入中填充的随机数相同。

尝试将随机数作为参数传递给Change,而不是依赖闭包

function Change(rando){
  if(rando%2 == 0) {
    BackgroundEven();
  } 
  else {
    BackgroundOdd();
  }
}
使用onclick一次调用两个或三个函数也不是很好。现在,我们通常会在加载文档后立即将侦听器附加到对象。也就是说,为了让你的代码更漂亮一点

function clickForRandom(){
  var rando = Random();
  document.getElementById('Random').value = rando;
  Change(rando)
}

<input type="button" value="Spin" onclick="clickForRandom()" />
函数clickForRandom(){
var rando=Random();
document.getElementById('Random')。value=rando;
改变(兰多)
}

将onclick包装成一个函数(更易于阅读)。但问题是当页面加载时,var rando只设置一次