2011-11-07 3 views
9

私はdivのkeydownイベントを取得したいと思います。私はJQueryキーダウンを使用します。ものすごく単純。クロムのdivのキーダウンイベントを取得するにはどうすればよいですか?

ただし、クロームでは機能しません。これをクロムで処理するには、tabindex = 0を設定する必要があります。

これを行うと、Chromeは私のdivの周りに醜いオレンジ色の境界線を配置します。

醜いオレンジ色の枠線がないクロムでこの処理を行う方法はありますか?

+0

これで正しい方法をどこに行っても問題はありません。 'keydown'イベントを持つには、理論的には要素に焦点を当てる必要があります。そうでなければ何をキーダウンしていますか? –

+0

divにkeydownイベントがあるのはどうでしょうか?私はテキスト入力とテキストエリアだけをキーダウンできると思った。 – frenchie

答えて

16

Keydownイベントは、フォーカスのあるHTML要素にのみ送信されます。フォーカス可能な要素はブラウザによって異なりますが、tabindexプロパティが設定されている要素は、ほとんどのブラウザで常にフォーカスを得ることができます。

div要素のtabindexは、フォーカス可能でキーボードイベントを受け取れるようにすでに設定されています。あなたの問題は、Google Chromeの現在注目されている要素のデフォルトの概要です。

アウトライン(前述の「醜いオレンジ色の枠線」)を変更するには、疑似CSSクラス:フォーカスとCSSのプロパティの概要を使用します。次の例では、フォーカスがあるときにすべての要素からアウトラインを削除します。

*:focus 
{ 
    outline: none; 
} 

このヘルプが必要です。

+1

アクセシビリティのために、oulineを設定することはまったくありません。 http://webaim.org/blog/plague-of-outline-0とhttp://www.outlinenone.comを参照してください。 – jbyrd

関連する問題