前方、スペースバー、および左の順番でキーを押すと非常に奇妙な理由があります。 Leftは起動せず、代わりにスペースバーを返します。 3つのキーの他の組み合わせは完全にうまく動作しますが、それは正しく動作しません。なぜかの手がかりは?JavaScriptキーボードイベントが起動しない
var Ctrl = {
init: function() {
window.addEventListener('keydown', this.keyDown, true);
window.addEventListener('keyup', this.keyUp, true);
},
keyDown: function(event) {
console.log(event.keyCode);
switch(event.keyCode) {
case 37: // Left
Ctrl.left = true;
break;
case 39: // Right
Ctrl.right = true;
break;
case 38: // up
Ctrl.up = true;
break;
case 40: // down
Ctrl.down = true;
break;
case 32:
Ctrl.space = true;
break;
default:
break;
}
},
keyUp: function(event) {
switch(event.keyCode) {
case 37: // Left
Ctrl.left = false;
break;
case 39: // Right
Ctrl.right = false;
break;
case 38:
Ctrl.up = false;
break;
case 40:
Ctrl.down = false;
break;
case 32:
Ctrl.space = false;
break;
default:
break;
}
}
};
問題は他の場所で発生する可能性がありますか?例えば、 'Ctrl.space'を読んだら、どこに' false'を設定しますか? –
コードをチェックし、それ以外は間違っていません。イベント自体はそれを返すことを拒否するので、私は困惑しています。 –