为什么KeyCode会返回NaN Javascript

时间:2015-09-16 04:07:12

标签: javascript keycode

每当按下一个键,我想将键数组中的相应位置设置为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);
}

1 个答案:

答案 0 :(得分:2)

您使用的是keycode,它应为keyCode(大写C

k = parseInt(e.keycode)

应该是

k = e.keyCode;
此处不需要

parseInt,因为keyCode返回整数值。