私はjQuery 1.12を使用しています。私はフォーカスがあるときにDIVがキープレス(特に、矢印の下に)をキャプチャするようにしたい。だから私はこれに従ったフォーカスがあるときにDIVがキー押しイベントをキャプチャしないのはなぜですか?
$('div.select-styled').bind('keydown', function(event) {
console.log(event.keyCode);
elt = $(this).search(".select-options li:hover");
console.log(elt);
switch(event.keyCode){
// case up
case 38:
console.log(“up pressed.”)
break;
case 40:
console.log(“down pressed”)
break;
}
});
しかし、これはキープレスをキャプチャしていません。私のフィドル - http://jsfiddle.net/cwzjL2uw/10/を見てください。 「Select State」メニューをクリックするか、「Last Name」フィールドをクリックして「Tab」をクリックして、次のDIVにフォーカスを合わせます。しかし、そのメニューにフォーカスがあるときは、キーをクリックしても上記のハンドラーはアクティブにならず、少なくともMacのChromeやFirefoxではそれが私のものではなかった。それはJavaScriptのキーボードイベントを受け取ることができます: -
任意の助けに感謝、
これだけ作品だ - .select'が親ではなく、単に 'ので、 。 'tabindex'を削除すると、問題が戻ってきます。 –
私はそれが注目されていることに気付きました。私はOPに焦点を当てていないので、バインドがdiv.select-styledで動作しないことをOPに伝えたいと思っていました。ですから私の提案は '.select'要素にバインドすることです。 @JonUleis –