我如何检测当一个方向键被按下?我用这个找到了答案:

function checkKey(e) {
    var event = window.event ? window.event : e;
    console.log(event.keyCode)
}

虽然它适用于所有其他键,但它不适用于方向键(可能是因为浏览器默认情况下应该在这些键上滚动)。


当前回答

我也一直在寻找这个答案,直到我看到这篇文章。

我已经找到了另一个解决方案,知道不同的钥匙的键码,礼貌的我的问题。我只是想分享我的解决方案。

只需使用keyup/keydown事件在控制台/警报中写入值,使用event. keycode相同。像- - - - - -

console.log(event.keyCode) 

// or

alert(event.keyCode)

——rupam

其他回答

这是短的。

函数IsArrows (e) { return (e.keyCode >= 37 && e.keyCode <= 40); }

对于不可打印的键,如方向键,使用向下键,而不是按下键:

function checkKey(e) {
    e = e || window.event;
    alert(e.keyCode);
}

document.onkeydown = checkKey;

我找到的最好的JavaScript键事件参考资料(例如,打败quirksmode)在这里:http://unixpapa.com/js/key.html

我已经能够用jQuery捕获它们:

$(document).keypress(function (eventObject) {
    alert(eventObject.keyCode);
});

示例:http://jsfiddle.net/AjKjU/

我也一直在寻找这个答案,直到我看到这篇文章。

我已经找到了另一个解决方案,知道不同的钥匙的键码,礼貌的我的问题。我只是想分享我的解决方案。

只需使用keyup/keydown事件在控制台/警报中写入值,使用event. keycode相同。像- - - - - -

console.log(event.keyCode) 

// or

alert(event.keyCode)

——rupam

我是这样做的:

var leftKey = 37, upKey = 38, rightKey = 39, downKey = 40;
var keystate;
document.addEventListener("keydown", function (e) {
    keystate[e.keyCode] = true;
});
document.addEventListener("keyup", function (e) {
    delete keystate[e.keyCode];
});

if (keystate[leftKey]) {
//code to be executed when left arrow key is pushed.
}
if (keystate[upKey]) {
//code to be executed when up arrow key is pushed.
}
if (keystate[rightKey]) {
//code to be executed when right arrow key is pushed.
}
if (keystate[downKey]) {
//code to be executed when down arrow key is pushed.
}