javascript - 在 Javascript 中处理长按键

标签 javascript dom-events

我正在尝试使用 Javascript 从用户那里获取 key 并将其存储在 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/

最佳答案

试试这个:

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;
};

关于javascript - 在 Javascript 中处理长按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999713/

相关文章:

dom - 获取用户输入的字符

javascript - 如何确定 Firefox 中的所有选项卡均已加载?

javascript - 替代 <input type ='file'/> 中的 onchange 事件

javascript - 在 MVC Controller 中获取 img

node.js - 发出 'stop'事件后如何中止异步功能

javascript - Angular JS 中的 $event 是未定义的类型错误

javascript - 将 JSON 中的属性提取到 JavaScript 中的对象数组中

javascript - 如何在给定开始日期和结束日期之间的数组中添加缺失的数据条目

javascript - 否定 safari 中不一致(和延迟)的页面呈现

javascript - 有条件地使用 Javascript 添加