我有这个代码:
else if (e.keyCode == 32){
fired = true;
Run Code Online (Sandbox Code Playgroud)
在keyDown函数中(我添加了document.addEventListener代码).现在它工作正常,并完全按照我的要求去做.但问题出在这里:如果按住键,它会一直反复地持续激活= true,直到它被释放.我只想要它设置fired = true; 一旦,即使按键被按下.
mr_*_*air 18
var fired = false;
element.onkeydown = function() {
if(!fired) {
fired = true;
// do something
}
};
Run Code Online (Sandbox Code Playgroud)
然后使用onkeyup事件
element.onkeyup = function() {
fired = false;
};
Run Code Online (Sandbox Code Playgroud)
Ist*_*115 11
如果您不是主要的浏览器兼容性*,则可以尝试访问的.repeat
属性,如此处所述KeyboardEvent
:https :
//developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/repeat
通过在处理程序函数中执行以下操作:
function keyDown (e) {
if (e.repeat) { return }
// do stuff here
}
Run Code Online (Sandbox Code Playgroud)
您可以避免重复按键。
*:在MDN网站上指出它可以在Firefox中运行,并且我已经在Chrome中成功使用了它,因此两个主要的浏览器都应该没有问题
归档时间: |
|
查看次数: |
11841 次 |
最近记录: |