5

モーダルウィンドウを開いたときに、タイプが非表示になっていないモーダルの最初の入力要素にフォーカスを設定しようとしているという問題があります。これが私たちが試みていることです:

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

ただし、この呼び出しは機能します。

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

入力フィールドのIDはloginInputです。

何かご意見は?

4

1 に答える 1

3

この問題は、jQueryがセレクターを解釈する優先順位が原因です。次のことを試してください。

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

これには、セレクターと等しくない属性と属性を使用しないという追加の利点があります。これは、:firstセレクターがjQuery固有であり、これらを使用するクエリでは、ネイティブDOM querySelectorAll()メソッドによって提供されるパフォーマンスの向上を利用できないためです。

于 2012-06-21T15:31:38.163 に答える