2014-01-11 6 views
0

jQuery의 focus() 메서드를 사용하려고하는데 왜 작동하지 않는지 이해할 수 없습니다. 당신이 "바위 준비"를 누르면 단추 처리기에 더 초점을 아직 호출되지하고, 그 안에, $('#playlistNameInput').focus();

콘솔이 도달하고 처리 된 것을 인정하는 메시지를 기록되지만, http://jsfiddle.net/3RGRv/4/

: 여기에 바이올린의 일어난다. 왜 그런지 아십니까?

+0

요소가 표시되지 않거나 최소한 레이아웃의 일부로 간주되면 포커스를 맞출 수 없습니다. 애니메이션 페이드가 끝날 때까지 기다렸다가,'focus'를 호출하십시오. 그게 효과가 없다면, 나는 왜 그런지 모른다. Backbone과 jQuery의 결합은보기 어렵습니다. 추신 ''이 (가)' ' – Ryan

+0

을 닫지는 않습니다. 참고 사항 : HTML 코드의 유효성을 검사하여 많은 잠재적 인 문제를 밝혀 내야합니다. 예를 들어, HTML 문서는'head' 섹션이 아니라'header' 섹션을 가져야합니다. http://validator.w3.org/ – Guffa

+0

' 분'LOL 코드를 복사 할 때 ''을 (를) 삭제하는 것을 잊었을 것 같습니다. –

답변

1

사용이

setTimeout(function(){$('#playlistNameInput').focus();},500); 
0

먼저 문제가있어이 #step1 당신이 임의 버튼을 끝 태그를 가지고 있다는 것입니다. Input은 자동 폐쇄됩니다.

여기 단계 1과 2에 대한 세척 업 버전입니다 :

// Step 1 
<input id="playlistNameInput" size="10"> 
that has at least <input id="totalHours" size="2"> hours and 
<input id="totalMins" size="2"> minutes of music.</p> 
// Step 2 
<input id="songTitle" placeholder="Title"> 
<input id="songArtist" placeholder="Artist"> 
<input id="songMinutes" placeholder="Minutes"> 
<input id="songSeconds" placeholder="Seconds"> 

둘째, "락 준비"를 클릭, 그것은 #playlistNameInput을 가지고 있지 않는, #step2로 이동합니다. 그 다음 단계에서 흐리게 후 을 실행 가도록 (듯이)

마지막으로 fadeOut$('#playlistNameInput').focus() 이동합니다.

$("#prompt").fadeOut('10000', function() 
{ 
    $("#step1").css("visibility", "visible").hide().fadeIn('slow'); 
    $('#playlistNameInput').focus(); 
}); 

완료. 여기에 cleaned-up, working fiddle이 있습니다.

관련 문제