每当按下w,s,a,d键时,我都会使用以下代码加载某个页面。
Int32.MaxValue + 10
php变量只包含url地址。
我的问题是,是否可以让按键每次点击仅注册一次? 如果按住钥匙,它会迅速发射。
感谢您的任何提示。
答案 0 :(得分:0)
您可以存储所按键的列表,如果该键不在列表中,则keydown
只运行您的代码。在keyup
删除列表中的条目。
var keysDown = {};
document.addEventListener('keydown', function(e){
e = e || window.event;
varkey = e.keyCode || e.charCode;
if(keysDown[key]) return;
keysDown[key] = true;
// Do something
});
document.addEventListener('keyup', function(e){
e = e || window.event;
var key = e.keyCode || e.charCode;
delete keysDown[key];
});
var keysDown = {};
document.addEventListener('keydown', function(e){
e = e || window.event;
var key = e.keyCode || e.charCode;
if(keysDown[key]) return;
keysDown[key] = true;
var keys = {
87: '{$up}',
68: '{$right}',
83: '{$down}',
65: '{$left}'
};
console.log(keys[key]);
});
document.addEventListener('keyup', function(e){
e = e || window.event;
var key = e.keyCode || e.charCode;
delete keysDown[key];
});
答案 1 :(得分:0)
尝试使用' keyup'事件:
<script>
document.addEventListener('keyup', function(e){
e = e || window.event;
key = e.keyCode || e.charCode;
var keys = {
87: '{$up}',
68: '{$right}',
83: '{$down}',
65: '{$left}'
};
if (keys[key]) window.location.href = keys[key];
});
</script>