gpt4 book ai didi

javascript - 为什么我的带有脚本的按钮有时不起作用?

转载 作者:行者123 更新时间:2023-11-28 15:02:37 25 4
gpt4 key购买 nike

我使用 Javascript 制作了一个简单的脚本,它生成 0-5+1 之间的随机数(骰子)。我的问题是,当我按下按钮时,它有一半时间没有执行任何操作,迫使我多次向按钮发送垃圾邮件掷骰子出现之前的时间。

我到处都查过,但找不到任何关于问题所在的资源。这是我的代码:

<html>
<head>
</head>
<body>
<button type="button" onclick="spin()">Click here to roll the Dice!</button>
<img src="" id="demo">
<script>
function spin() {
if (Dice() == 1) {
document.getElementById("demo").src="http://i.imgur.com/QRTs9Ax.png";
}
else if (Dice() == 2) {
document.getElementById("demo").src="http://i.imgur.com/OMz1o8U.png";
}
else if (Dice() == 3) {
document.getElementById("demo").src="http://i.imgur.com/J4Xx2yO.png";
}
else if (Dice() == 4) {
document.getElementById("demo").src="http://i.imgur.com/CJb2ojk.png";
}
else if (Dice() == 5) {
document.getElementById("demo").src="http://i.imgur.com/8W6UL5O.png";
}
else if (Dice() == 6) {
document.getElementById("demo").src="http://i.imgur.com/NGxBete.png";
}
}

</script>
<script>
function Dice() {
return Math.floor(Math.random() * 6) + 1;
}
</script>
</body>
</html>

最佳答案

因为 Math.floor(Math.random() * 6) + 1; 可能返回 7

编辑

Math.floor(Math.random() * 6) + 1; 根据 Mozilla Developers 无法返回 7因为 Math.random() 不包括 1Math.floor只需剪切该值,这样您将始终收到 16 之间的值。

问题是,使用 if (Dice() == x) 启动该函数,因此它将为所有 is 语句返回不同的值。你必须建立一个 switch像这样:

function spin() {
switch (Dice()) {
case 1:
document.getElementById("demo").src = "http://i.imgur.com/QRTs9Ax.png";
break;
case 2:
document.getElementById("demo").src = "http://i.imgur.com/OMz1o8U.png";
break;
case 3:
document.getElementById("demo").src = "http://i.imgur.com/J4Xx2yO.png";
break;
case 4:
document.getElementById("demo").src = "http://i.imgur.com/CJb2ojk.png";
break;
case 5:
document.getElementById("demo").src = "http://i.imgur.com/8W6UL5O.png";
break;
case 6:
document.getElementById("demo").src = "http://i.imgur.com/NGxBete.png";
break;
}

关于javascript - 为什么我的带有脚本的按钮有时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com