シフトキーを離したときに関数を実行できるようにしたい。シフトが解除されたかどうかを検出する方法は?
私はシフトキーのようなものを用いて検出することができる知っている:
$(window).bind("keydown keyup", function(ev) { ... });
それはキーの組み合わせ(例えばshift+a
)を検出するために非常に適しています。問題は、シフトキー自体を検出したい場合、をev.shiftKey=false
,ev.which=16
、keyup
をev.shiftKey=true
,ev.which=16
に設定することです。 keyup
にこのコンビネーションのイベントを添付しようとしましたが、両方のシフトキーを押したときに非常に微妙な方法で失敗します。最初のシフトキーが離されます。
これを行うには何かクリーンな方法はありますか?または、私はちょうど2つのシフトキーの場合を無視する必要がありますか?
ええ、それを処理する明らかな方法は、シフトがダウンすると変数をインクリメントし、シフトが発生するとそれを減らすことです。その変数がゼロでない限り、シフトが押されたとみなすことができます。それは、実装が非常に難しい解決策ではありませんが、誰かが両方を押す理由はありません。 – brymck