2012-06-21 15 views
5

モーダルウィンドウを開くときに、非表示のタイプではないモーダルの最初の入力要素にフォーカスを設定しようとしているところがあります。ここで我々がしようとしているものです:jquery .focusが入力用に機能していない:

$("#test-overlay input[type!=hidden]:first").focus(); 

ただし、この呼び出しは動作します:

$("#test-overlay #loginInput").focus(); 

入力フィールドはloginInputのIDを持っています。

どのような考えですか?

+0

jsFiddleでの簡単な概念証明スクリプトをお願いします。 – epascarello

答えて

3

問題は、jQueryがセレクタを解釈する優先順位のためです。試してみてください次:

$('#test-overlay input').not('[type=hidden]').first().focus(); 

これ持っ:firstを使用していないと、彼らはネイティブDOM querySelectorAllが提供するパフォーマンス向上の利点を取ることができないこれらを使用してjQueryを特定し、クエリしているので、セレクタに等しくない属性の追加の利点() 方法。

+0

それは働いています。どうもありがとう! :) – NunuJ

+0

これはFirefoxでうまく動作していますが、IEではできません。何かご意見は? – NunuJ

+0

@NunuJ上記はIEでうまくいくはずです。文書の準備ができたらコードが呼び出されますか? –

関連する問題