在javascript中处理长按键

时间:2012-10-21 16:24:00

标签: javascript javascript-events

我正在尝试使用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/

提前完成..

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

尝试键盘:

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

答案 2 :(得分:-2)

仅使用keydown和keyup事件。它们的名字就像keydown一样工作:按下键时的单个事件。 keyup - 释放密钥时的单个事件。