2013-05-01 1 views
4

단순히 페이지 위젯이 페이지로드 후에 포커스를 갖기를 원합니다. 내가 좋아하는 여러 가지 시도했다 : ID를 수정하고 내가 할태그 위젯에 포커스를 설정하는 방법은 무엇입니까?

<script type="text/javascript"> 
    $("#newIDiTriedToMake").focus(); 
</script> 

아무것도 방법을 문의하기 위해 사용 jQuery를 같은

<script type="text/javascript"> 
    $("#myTags").tagit("tagInput").click(); 
</script> 

<script type="text/javascript"> 
    $("#myTags").tagit("tagInput").focus(); 
</script> 

더 이국적인 것들을 이제까지 보인다 태그 위젯에 키보드 포커스를 둡니다. 내 페이지를 통해 탭으로 이동하거나 마우스로 수동으로 클릭하여 태그 입력을 시작해야합니다. 누구든지 나를위한 단서가 있습니까?

답변

1

당신이 있다고 생각을 모두 트랙, 문서가 건물을 완성 (따라서되지 않았 음 그 요소는 아마도 존재하지 않습니다.) 초점을 맞추려고 할 때. 그러나, 나는 문제를 쉬운 방법으로 해결했다 : 소스 코드 편집.

는 그냥의 _create() 메소드 태그 그것은, Javascripty 선량에 의존하지 않고 요소에 포커스를 제공

this.tagInput.attr('autofocus', 'autofocus'); 

첨가. 이것은 효과가 있었다.

+0

다른 제안 된 솔루션을 시도했습니다. 원래 질문에서 나는 이것이 이미 시도한 것들이라는 것을 정말로 알았습니다. 몇 가지 노력을 한 후, 제 작업을 할 수있는 유일한 해결책 이었기 때문에 대답을 스스로 대답한다고합니다. –

+0

답글을 달았지만 HTML5에서는 '자동 초점'이 새롭다는 점에 유의하십시오. –

+0

결국 내 자신의 답변을 올바른 것으로 표시하는 것이 싫지만 결국에는 Ron의 경고에 주목하여 작업을 할 수있는 유일한 방법이었습니다. 이것이 HTML5입니다. 슬픈 '모트 여기. –

0

내가 놓친 것은 모두 포커스를 설정하기 전에 DOM을 빌드하는 것입니다. 그것은 .tagit ("tagInput")이 포커스 가능 요소를 참조하는 경우입니다. 당신이 시도 할 수 :

<script type="text/javascript"> 
    $(function() { 
     $("#myTags").tagit("tagInput").focus(); 
    }); 
</script> 
+0

작업을 수행하기 전에 DOM을 완료하는 방법에 대해 간단하게 설명 할 수 있습니까? 벤자민의 대답은 정확할 수도 있고 그렇지 않을 수도 있습니다 (아직 시도하지는 않았지만). –

+0

$ (function()은 $ (document)와 같습니다 .ready - 단지 짧은 핸드 일뿐입니다. "autofocus"솔루션도 마음에 들어요. –

+0

나는이 조언을 사용하여 작동하도록 노력했으며, 그것은 이미 내가하고있는 것 같다. $ (document) .ready 영역에서 태그 위젯을 인스턴스화하므로 내 솔루션 만이 작동하는 것 같다. –

0

당신은 document.ready 때 당신은 집중해야한다 :

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#newIDiTriedToMake").tagit("tagInput").focus(); 
    }) 
</script> 
+0

나는 Ron의 루트를 내려가는 것은 엘리먼트의 ID를 수정하는 것이 나쁜 습관으로 간주되기 때문에 직관적으로는 정말 나쁜 생각으로 보입니다 –

+0

아하, 정확하게 작동하지 않을 것이라고 확신합니다. 코드 컨텍스트를 부여했지만 ID를 수정하고 포커스를 설정하는 곳은 $ (document) .ready (f() {...})입니다. –