每当按下一个键,我想将键数组中的相应位置设置为true。但是,由于某些原因,无论您按哪个键,键码都会以NaN形式返回。为什么会发生这种情况,我该如何解决?
var keys = [];
document.onkeydown = keypress;
function keypress(e){
e = e || window.event;
k = parseInt(e.keycode)
if(!keys[k]){
keys[k] = true;
console.log("keypressed: "+k);
}
}
document.onkeyup = keyrelease;
function keyrelease(e){
e = e || window.event;
k = parseInt(e.keycode)
keys[k] = false;
console.log("keyreleased: "+k);
}
答案 0 :(得分:2)
您使用的是keycode
,它应为keyCode
(大写C
)
k = parseInt(e.keycode)
应该是
k = e.keyCode;
此处不需要 parseInt
,因为keyCode
返回整数值。