JavaScript键盘事件未触发

时间:2012-05-13 08:28:46

标签: javascript javascript-events keyboard-events

出于一些非常奇怪的原因,当您按前进,空格键和左侧的顺序按键时。左边不会触发并返回空格键。三个键的任何其他组合完全正常,但不是那个。关于为什么的任何线索?

var Ctrl = {
    init: function() {
        window.addEventListener('keydown', this.keyDown, true);
        window.addEventListener('keyup', this.keyUp, true);
    },

    keyDown: function(event) {
        console.log(event.keyCode);

        switch(event.keyCode) {
            case 37: // Left
                Ctrl.left = true;
                break;
            case 39: // Right
                Ctrl.right = true;
                break;
            case 38: // up
                Ctrl.up = true;
                break;
            case 40: // down
                Ctrl.down = true;
                break;
            case 32:
                Ctrl.space = true;
                break;
            default:
                break;
        }
    },

    keyUp: function(event) {

        switch(event.keyCode) {
            case 37: // Left
                Ctrl.left = false;
                break;
            case 39: // Right
                Ctrl.right = false;
                break;
            case 38:
                Ctrl.up = false;
                break;
            case 40:
                Ctrl.down = false;
                break;
            case 32:
                Ctrl.space = false;
                break;
            default:
                break;
        }
    }
};

2 个答案:

答案 0 :(得分:2)

也许您的一个键是激活不需要的默认行为。您可以尝试将event.preventDefault();添加到事件绑定中。

check the jsFiddle

答案 1 :(得分:1)

这取决于键盘的型号。某些键盘不适用于某些键组合。这很正常。