2012-01-17 10 views

答えて

-1

すべての項目にイベントを追加して、クラス「hasFocus」、onFocusを取得することができます。次に、どの要素が現在のフォーカスを持っているかを知っています。もちろん、onblurイベントでこのクラスを削除する必要もあります。

+2

このアプローチはうまくいくかもしれないが、それは現実的でしょうか?数十、または数百のアイテムがある場合はどうなりますか? –

+0

@GeorgeJempty私もそうだと思った –

+0

あなたは正しいです。私は '$( '*:focus')'が可能であることを知りませんでした。 – Armin

3

document.activeElementを使用すると、現在の要素がフォーカスされます。

この操作は不要です。

var focusedElements = $('*:focus'); 

をし、その後、この変数の長さをチェックしてください。ページをリロードした場合、あなたはjQueryのを使用している場合、あなたが行うことができますautofocus attribute

+1

それは私のIE7で動作しません:( – jAndy

+1

@ jAndyあなたのIE7は、JavaScriptのmimetypeは '" application/javascript "ですので、JavaScriptを取得しません。 – Raynos

+0

@jAndy IE7のサポート、満足していますか? – Raynos

2

を使用して、特定の要素にフォーカスをデフォルトすることができます。

if ($('*:focus').length > 0) 
    // Some object has focus! 
else 
    // No focus 

http://api.jquery.com/focus-selector/

+1

親愛なる神ひどく非効率的だと思う – Raynos

+0

私はjqueryなしで答えを優先しますが、もしそれがなければ私はこれを試さなければなりません。ありがとうございました。 –

+0

@Raynos:ひどく非効率です。このコードは、マークアップを使用するすべての単一ノードのクエリを意味します。 – jAndy

関連する問題