2012-06-21 7 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

이것은 파이어 폭스와 크롬은 잘 동작하지만 IE는 그렇지 않습니다. 이견있는 사람? – NunuJ

+0

@ NunuJ 위의 IE에서 잘되어야합니다. 문서가 준비되면 코드가 호출됩니까? –

관련 문제