javascript - 在浏览器中单击按钮后,如果 else 语句不起作用
问题描述
我想使用 Javascript、DOM、HTML 和 CSS 构建游戏。我的逻辑如下:
第 1 步:单击三个按钮执行三个不同的功能,名为 random1、random2 和 random3。每个函数将生成两个随机数。(假设 1 和 2)。
if
Step2:使用/else-if
条件检查这些函数的结果。
Step3:如果所有按钮的返回值都为1,则提示(“玩家1获胜”)。类似地,如果值为 2,则会提示“玩家 2 获胜”。
Step4:如果值不相等,程序会要求刷新浏览器。
但问题是,当我在浏览器中运行此代码时,只有 else 语句有效,而 if/else-if 无效。p/>
另一个问题:单击“按钮三”时,else 语句在 < 标记中显示随机数之前起作用。
//My Code//
var a;
function random1(){
a = Math.floor(Math.random()*2+1);
document.getElementById("para1").innerHTML = a;
return a;
}
let p1 = document.getElementById("myBtn1");
p1.addEventListener("click", random1);
var b
function random2(){
b = Math.floor(Math.random()*2+1);
document.getElementById("para2").innerHTML = b;
return b;
}
let t2 = document.getElementById("myBtn2")
t2.addEventListener("click",random2);
var c
function random3(){
c=Math.floor(Math.random()*2+1);
document.getElementById("para3").innerHTML = c;
return c;
}
let r3 = document.getElementById("myBtn3");
r3.addEventListener("click",check(a,b,c));
r3.addEventListener("click",random3);
function check(s,t,u){
if(s===1 && t===1 && u===1){
alert("Players 1 Wins");
}
else if(s===2 && t===2 && u===2){
alert("Player 2 Wins");
}
else{
alert("Refresh the Browser");
}
}
解决方案
问题出在这一行
r3.addEventListener("click",check(a,b,c))
该函数必须是一个监听器,当事件发生时会被浏览器调用。要解决它,您可以执行类似的操作。
r3.addEventListener("click",() => {
check(a,b,c)
})
推荐阅读
- html - 无法使用 angular4 中的 PipeTransform 进行反向排序
- powershell - Powershell 出错时恢复
- java - 为什么 Spring-data-jdbc 不保存我的 Car 对象?
- node.js - 批量创建后 Sequelize 不会关闭
- c++ - CLR dll 无法运行托管 DLL,除非它位于 exe 目录(或其子目录)中
- c - 为什么我从递归函数返回的值是错误的
- r - 从另一个矩阵创建矩阵
- java - java.util.Locale 返回它构建时使用的不同语言
- excel - 通过 Win32com 从 Python 到 Excel 的 Bloomberg 公式
- push-notification - 我可以向那些卸载了我的安卓应用程序的用户发送推送通知吗?