我正在尝试制作一个浏览器数学游戏,但遇到了递归过多的错误,但无法找到原因。
任何有关调试的帮助或建议,将不胜感激。
HTML
<body>
<label id="question"></label>
<br><br>
<input type="text" id="answer">
<br><br>
<br><br>
<label id="correct">Correct: 0</label>
<br><br>
<label id="incorrect">Incorrect: 0</label>
<br><br>
<input type="button" id="enterButton" value="E N T E R" />
</body>
JavaScript
单击按钮时调用evalFunction,并传递2个数字和符号值
似乎在页面加载时按下了按钮,但是即使输入为空白也仍然有一些正确答案。大约有1/21的时间,因此由于所有答案都介于0到20之间,可能是因为它没有将答案归为0,这是以前没有做的。
var enterButton = document.createElement('enterButton');
enterButton.onclick = evalFunction(num1, num2, sign);
答案 0 :(得分:1)
您遇到了问题,因为您突然调用了函数evalFunction
var enterButton = document.createElement('enterButton');
enterButton.onclick = evalFunction(num1, num2, sign);
^
您需要将函数分配给属性onclick
var enterButton = document.createElement('enterButton');
enterButton.onclick = function() {
evalFunction(num1, num2, sign);
};
或者您可以使用函数click
addEventListener
var enterButton = document.createElement('enterButton');
enterButton.addEventListener('click', function() {
evalFunction(num1, num2, sign);
});
答案 1 :(得分:0)
在您的代码中,您已经像这样执行mathFunction
:window.onload = mathFunction();
,这将导致它在加载窗口时执行。在该mathFunction中,您要使用onclick
配置按钮:
enterButton.onclick = evalFunction(num1, num2, sign);
但是这会将evalFunction
的值放入onclick
中,因为由于写入不正确,它将立即执行。下面是一个正确的示例。
enterButton.onclick = function(){evalFunction(num1, num2, sign);};