事件监听器onkeydown问题Javascript

时间:2018-08-16 08:24:22

标签: javascript

我正在尝试创建一个hang子手游戏,但是我的事件监听器似乎不起作用?当我按一个键时,网页上没有任何响应。

document.onkeydown = function (event) {
    // If the game is finished, one keystroke will reset the game
    if (hasFinished) {
        resetGame();
        hasFinished = false;
        console.log("eventListenerWorking16");
    } else {
        // Make sure A-Z was actually pressed
        if (event.keyCode >= 65 && event.keycode <= 90) {
            makeGuess(event.key.toLowerCase());
            updateDisplay();
            checkWin();
            checkLoss();
            console.log("eventListenerWorking16");
        }
    }
};

3 个答案:

答案 0 :(得分:0)

恕我直言,事件应正确触发。 我认为要进行更好的调试,您应该在匿名函数调用之后放置console.log(请参见下面的代码)。 这样一来,便有可能了解之后是否有问题(涉及以后应用的逻辑)。

document.onkeydown = function (event) {
    console.log("keydown event fired");
    // If the game is finished, one keystroke will reset the game
    if (hasFinished) {
        resetGame();
        hasFinished = false;
        console.log("eventListenerWorking16 hasFinished");
    } else {
        // Make sure A-Z was actually pressed
        if (event.keyCode >= 65 && event.keycode <= 90) {
            makeGuess(event.key.toLowerCase());
            updateDisplay();
            checkWin();
            checkLoss();
            console.log("eventListenerWorking16 makeGuess");
        }
    }
};

答案 1 :(得分:0)

哦,太好了。一种错字可能需要几个小时才能解决

此行中有一个错字

if (event.keyCode >= 65 && event.keycode <= 90) {

必须是event.keyCode个大写字母

答案 2 :(得分:-1)

尝试使用此代码:

document.addEventListener("keydown", myScript);