では、.keypress と .keydown/.keyup の違いは何ですか? 現在、キーに対して .which 値 38 を返す .keydown を使用しています。これを .keypress に変更すると、同じキーに対して値 109 が返されます。違いは何ですか? 同じキーに対して値が異なるのはなぜですか?
5 に答える
ボタンを押すと が発射され、keydown
離すと が発射されますkeyup
。はkeypress
通常、これら 2 つの間に来ます。
keydown
どのキーが変更されたkeyup
かについて話します。キーが表す文字を示します。keypress
これはすべてブラウザに依存することに注意してください。
さまざまなブラウザーに実装されている主要なイベントの違いについては、この記事を参照してください。
私はd$%^ @ dになります。キーを押すと本当に違いがあり、これまでずっと気づいていませんでした。笑
私のフィドルを見て、「r」の文字のようなものを試してください
http://jsfiddle.net/SpYk3/NePCm/
どういうわけか私はこれに注意を払ったことがありません
詳細情報が見つかりました:
http://www.quirksmode.org/js/keys.html
「2つのプロパティはとです。簡単に
keyCode
言えば、ユーザーが実際に押したキーボードキーについて何かを言い、結果の文字のASCII値を示します。これらの情報は同じである必要はありません。たとえば、小文字です。 'a'と大文字の'A'は、ユーザーが同じキーを押したために同じですが、結果の文字が異なるために異なります。charCode
keyCode
charCode
keyCode
charCode
ExplorerとOperaはをサポートしていません
charCode
。ただし、文字情報は。keyCode
でのみ提供されonkeypress
ます。onkeydown
重要な情報が含まれて-up
keyCode
います。」
次の投稿を読む必要があります:http: //javascript.info/tutorial/keyboard-events
キーダウンは、キーを押すとトリガーされ、スキャンコードを提供します。Keypressは、keydownの後にトリガーされ、char-codeを提供しますが、文字キーに対してのみ保証されます。
通常の場合、次のように進みkeyup
ます。
$(document).keyup(function(e){
console.log(e.which);
});
理由:
keydown
ユーザーがキーを押したままにするkeypress
と発火し続けますが、keyup
一度だけ発火します。keypress
SHIFT
特殊キー (例: ) を検出せず、検出keydown
しkeyup
ます。
KeyPress は KeyDown の後に発生します。したがって、KeyDown を使用してそれがどのキーであるかを判断し、次に KeyPress を使用してその文字を禁止することができます。