我想在循环中添加一个条件,测试右箭头是否被按下以及它是否向右移动了一个 div。但是我不知道如何检查他们的按键。
我正在使用代码来执行此操作,但它确实很长,我确信有更短的方法来执行此操作。
这是代码:
<div id="char"></div>
<script>
setInterval(function() {
// here it should check if RIGHT (keycode 39) is down and move char 10px to the right if it is;
}, 20);
</script>
如何检查循环内的 keydown?顺便说一句,我还在网站上使用 jQuery。
谢谢
最佳答案
在原始 JS 中你会做这样的事情(按预览然后按住 w
):
var isPressed = false;
var keydown = function(e){
if(e.keyCode == 87){
isPressed = true;
}
}
var keyup = function(e){
isPressed = false;
}
document.addEventListener("keydown",keydown,false);
document.addEventListener("keyup",keyup,false);
setInterval(function(){
if(isPressed){
document.getElementById('hello').innerHTML = document.getElementById('hello').innerHTML+', pressed';
}
},100)
更新
如果您使用的是 jQuery,则可以将 eventListeners 更改为:
$(window).keydown(function(e){
if(e.keyCode == 87){
isPressed = true;
}
})
.keyup(function(e){
isPressed = false;
})
并删除这些行:
var keydown = function(e){
if(e.keyCode == 87){
isPressed = true;
}
}
var keyup = function(e){
isPressed = false;
}
document.addEventListener("keydown",keydown,false);
document.addEventListener("keyup",keyup,false);
但这是一回事。
关于javascript - 如果键在 javascript 循环中关闭,则返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103186/