javascript - 使用 addEventListener 更新/增加 Javascript 中的计数器
问题描述
简单的问题 - 我不太明白为什么当我使用事件监听器单击提交按钮(输入类型提交)时我的计数器变量没有更新。其余的代码都很好,我只想知道为什么我的“counter++”在单击按钮时没有将计数器值加 1。
let counter = 0;
submitButton.addEventListener('click', function() {
counter++;
-----FEEL FREE TO IGNORE THE CODE BELOW THIS----
let captureInput = document.getElementById('primaryGuess');
storeGuess(captureInput.value);
const newLi = document.createElement("LI");
const LiContent = document.createTextNode(captureInput.value);
newLi.appendChild(LiContent);
listOfPriorGuesses.appendChild(newLi);
arrayOfGuesses.forEach((currNum) => {
if (parseInt(currNum) === randomNumber) {
gameTitle.innerText = "YOU WIN!!!"
gameTitle.style.color = "green"
captureInput.value = "Click Play Again!"
} else if(parseInt(currNum) < randomNumber) {
captureInput.value = "Guess Higher!"
} else if(parseInt(currNum) > randomNumber) {
captureInput.value = "Guess Lower!"
}
})
})
解决方案
它应该工作。请参阅下面的最小代码。如果您input type='button'
在表单中使用,则需要使用,e.preventDefault()
否则表单将被提交。可能是你有这种情况。您也可以type='button'
在不需要的情况下使用e.preventDefault();
let counter = 0;
let submitButton = document.getElementById('submitButton');
let inputSubmitButton = document.getElementById('inputSubmit');
submitButton.addEventListener('click', function() {
counter++;
console.log(counter);
});
inputSubmitButton.addEventListener('click', function(e) {
e.preventDefault();
counter++;
console.log(counter);
});
<button id='submitButton'> Button </button>
<form>
<input id='inputSubmit' type="submit" value="Submit button" />
</form>
推荐阅读
- r - 2018 年在 shinyapps.io 上部署的闪亮应用程序在 2019 年无法在本地运行
- c# - 数据库表列数据未显示到网格视图中
- django - 如何使用 Django、docker 从 Fargate 获取错误日志
- python - 尝试运行 python 代码时出现 TypeError
- c++ - 布尔值始终评估为真
- javascript - 如何通过滚动而不刷新来检测y偏移的变化
- java - JPA合并第一次不起作用,但第二次起作用
- ruby-on-rails - 控制器没有从 ApplicationController 继承方法
- python - 为什么 pandas 库在不同的 IDLE 上给出恒定的 Unicode 错误?
- php - 如何在没有 composer 的情况下在 Laravel 项目中使用 Laravel 库