Как обнаружить нажатия клавиш со стрелками в JavaScript?

Я делаю гоночную игру на JavaScript. Автомобиль управляется клавишами со стрелками. Раньше я делал много игр на JavaScript, и это работало.
Я использовал следующий код:

function detectKey(e) {
    var event = window.event ? window.event : e;
    if (true) {
        alert(event.keyCode)
    }
}

Теперь я впервые использую этот код для клавиш со стрелками. Всякий раз, когда я нажимаю клавиши со стрелками, страница перемещается вверх и вниз. Я не понимаю проблемы. Кто-нибудь может помочь?


person Ashish Ahuja    schedule 05.05.2015    source источник
comment
используйте простые коды клавиш, просто погуглите   -  person Ainz-sama    schedule 05.05.2015
comment
Коды клавиш для стрелок влево (37), стрелок вверх (38), стрелок вправо (39), стрелок вниз (40).   -  person Rakesh_Kumar    schedule 05.05.2015
comment
Это уже пятый раз, когда я наблюдаю, как этот пользователь делает это.   -  person akhil_mittal    schedule 09.05.2015


Ответы (3)


Вот список всех кодов клавиш http://mikemurko.com/general/jquery-keycode-cheatsheet/
- Введите: 13 - Вверх: 38 - Вниз: 40 - Вправо: 39 - Влево: 37

    $(document).keyup(function(e) {
        if (e.which === 38) {
          //up was pressed
        }
    });
person NickOS    schedule 05.05.2015

Используйте keyCode, как показано ниже:

$(document).on('keypress','your-element',function(e){
    if(e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40)
    console.log("Arrow key pressed");
})
person Rav's Patel    schedule 05.05.2015

на чистом JavaScript

document.onkeydown = function myFunction() {
switch (event.keyCode) {
case 38:
    console.log("Up key is pressed");
    break;
case 40:
    console.log("Down key is pressed");
    break;
case 37:
    console.log("Right key is pressed");
    break;
case 39:
    console.log("left key is pressed");
    break;
}

}

person Sunil B N    schedule 05.05.2015
comment
Коды ключей, которые вы предоставили, неверны - person Thomas Welton; 14.06.2016
comment
Вверху: 38 Внизу: 40 Вправо: 39 Влево: 37 - person Akkumulator; 24.07.2016
comment
onkeypress не может обнаружить клавиши со стрелками! вместо этого используйте keydown. - person Santosh; 27.07.2016