1

我正在尝试使用 Javascript 从用户那里获取密钥并将其存储在 Javascript 对象中。

即当我按下 时A,应该将 1 添加到 myJSON[65]。
以下代码完美运行,但如果用户长时间按下一个键,它会将其检测为多次按键。我不想那样。有一个更好的方法吗?

var myJSON={65:[],83:[],68:[],70:[],71:[]};
window.onkeydown=function(e){
    console.log(myJSON);
    myJSON[parseInt(e.keyCode)].push(1);
}

http://jsfiddle.net/mp2v7/

4

3 回答 3

2

试试这个:

var keyStopper = false;

window.onkeydown = function(e) {
    if (keyStopper) {
        return e.keyCode;
    }
    keyStopper = true;
    console.log(myJSON);
    myJSON[parseInt(e.keyCode)].push(1);
};

window.onkeyup = function(e) {
    keyStopper = false;
};
于 2012-10-21T16:32:11.320 回答
0

试试keyup:

var myJSON={65:[],83:[],68:[],70:[],71:[]};
window.onkeyup=function(e){
    console.log(myJSON);
    myJSON[parseInt(e.keyCode)].push(1);
}
于 2012-10-21T16:25:32.740 回答
-1

仅使用 keydown 和 keyup 事件。顾名思义,它们的工作原理是 keydown :按下某个键时的单个事件。keyup - 释放键时的单个事件。

于 2012-10-21T16:46:28.580 回答