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只设置一次