事件侦听器中的 if 语句不适用于 JavaScript

问题描述

制作这个超级简单的游戏。您按住空格键,计时器启动,当您松开空格键时,它会停止,如果您击败了高分,那么它将更新高分,否则它将计时器重置为 0 并保持高分不变。如果计时器低于高数,我将无法获得高分以保持不变。每次都变

`use strict`;

let timer = document.getElementById(`number`);
let highscore = document.getElementById(`highNumber`);
let resetBtn = document.getElementById(`resetBtn`);

let timerNumber = 0;

startTimer();
function init() {}

function startTimer() {
document.addEventListener('keydown',(event) => {
    if (event.code === 'Space') {
        timer.textContent = timerNumber++;
    }
});
}

document.addEventListener(`keyup`,(event) => {
if (timer.textContent > highscore.textContent) {
    highscore.textContent = timerNumber;
    timer.textContent = 0;
    timer.textContent = 0;
    timerNumber = 0;
}
if (timer.textContent < highscore.textContent) {
    timer.textContent = 0;
    timer.textContent = 0;
    timerNumber = 0;
}
});

function reset() {
resetBtn.addEventListener(`click`,function () {
    highscore.innerHTML = 0;
});
}
reset();

解决方法

不要将 keyupkeydown 事件添加到 document 将其添加到 <html> 标签:

document.querySelector("html").addEventListener('keydown',(event)=>{
  //something
});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...