что не так между двумя примерами кода с нажатием нескольких клавиш? - PullRequest
0 голосов
/ 01 июня 2019

Я пытался одновременно нажимать несколько клавиш.Я нашел какой-то ответ на это.Я следил за этим.

Несколько нажатий клавиш JavaScript

Проблема в том, что я получил часть этого кода, который работает.Но моя версия этого не работает.Я совершенно не понимаю, что происходит.

Код из ответа

var keys;

document.getElementById('demo').addEventListener("keydown", function (e) {
    keys = (keys || []);
    keys[e.keyCode]=true;

    if (keys[65] && keys[66]){
        document.body.style.backgroundColor = "red";
    }
} , false);

document.getElementById('demo').addEventListener("keyup", function (e) {
    keys[e.keyCode]=false;
    document.body.style.backgroundColor = "green";
    stop();
}, false);

Моя версия кода.

var keys;

document.getElementById('demo').addEventListener("keydown", function (e) {
keys = (keys || []);
    keys[e.keycode]=true;
    if (keys[65] && keys[66]){
    document.body.style.backgroundColor = "red";
}
} , false);
document.getElementById("demo").addEventListener("keyup", function (e) {
    keys[e.keycode]=false;
    document.body.style.backgroundColor = "green";
//stop();
} , false);

В моей версии кода первая частьне работает.Я не могу понять, почему?

Ответы [ 2 ]

0 голосов
/ 01 июня 2019
  1. keycode необходимо записать как keyCode в обоих местах.
  2. Убедитесь, что демонстрационный элемент является входным, он не будет работать с div и т. Д.
0 голосов
/ 01 июня 2019

оригинал

 keys[e.keyCode]=true; 
stop(); 

VS.yours

keys[e.keycode]=true;
//stop();
...