Javascript键侦听器按任意键

时间:2017-04-22 11:35:27

标签: javascript keyboard listener

我遇到了问题,我需要找到解决方案。 :d

所以这是我的代码:

var inputEnabled = true
var pressedKey = {}
window.addEventListener('keydown',function(e) {
    pressedKey[e.keyCode || e.which] = true;
}, true);
window.addEventListener('keyup',function(e) {
    pressedKey[e.keyCode || e.which] = false;
}, true);

function keyBinding() {
    if (*my problem*) {
        loadMenu()
    }

    if (inputEnabled == true) {
        setTimeout("keyBinding()", 25)
    }
}

我想要的是,当按下任何键时我想加载一个菜单,但我不知道我应该怎么检测到按键。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试使用代码中*my problem*的地方:

if(Objects.keys(pressedKey).length>0){ // checks if the object 'pressedKey' contains atleast one key
    loadMenu()
}

但我建议直接在按键监听器内检查按键:

var inputEnabled = true
var menuLoaded = false; // this will indicate if the menu is loaded already
var pressedKey = {}
window.addEventListener('keydown', function (e) {
    if(!menuLoaded){ // check if menu is not open
        loadMenu()
        menuLoaded = true
    }
    pressedKey[e.keyCode || e.which] = true;
}, true);
window.addEventListener('keyup', function (e) {
    pressedKey[e.keyCode || e.which] = false;
}, true);