「こんにちは」は、keydown
ハンドラー内にないため、一度だけアラートを出します...ハンドラー内にありますready
。
$(document).ready(function(){
$(document).bind('keydown',function(e){
key = e.keyCode;
if(key == 37){
left();
}else if(key == 38){
up();
}else if(key == 39){
right();
}else if(key == 40){
down();
}
});// keydown handler ends here
alert("Hi");
});
また、補足として、 のconsole
代わりにメソッドを使用してみてくださいalert()
。より説明的であり、非ブロッキングであるためです。
アップデート
以下のコメントから、コードで実際に何が起こっているのかについてかなり混乱していることがわかります... それでは、順を追って説明しましょう。
$(document).ready(function(){
ここでは、ハンドラーをDOM ready
イベントにバインドしています。これは、ブラウザがドキュメント構造の構築を完了すると発生します。ロードする必要がある外部アセットは考慮されていません。
$(document).bind('keydown', function(e){
これで、ハンドラーをkeydown
イベントにバインドしています。イベントがレベルに達すると、関数内のすべて(および関数内のみ) が実行されます。keydown
document
key = e.keyCode;
keyCode
イベントのプロパティをkey
変数に割り当てます。var
範囲を維持するために、キーワードを前に付けることをお勧めします。var key = e.keyCode;
if(key == 37){
left();
}else if(key == 38){
up();
}else if(key == 39){
right();
}else if(key == 40){
down();
}
これで、一連のif
/ブロックをジャンプして、以前に宣言された変数が条件の 1 つに一致する場合、 、、および関数else
を呼び出しています。left
up
right
down
key
});
これはハンドラーのENDです。keydown
alert("Hi");
alert()
ではメッセージです。これは、keydown
ハンドラーが BOUND された直後に行われますが、そのハンドラーの実行後ではありません。この行は、ドキュメントready
ハンドラーの一部として 1 回実行されます。
});
これでドキュメントready
ハンドラは終了です。