많은 버튼을 호스팅하는 jQuery UI 대화 상자가 있습니다.jQuery UI 대화 상자가 포커스를 도용합니다
나는이 버튼들에 키보드 컨트롤 (탭 네비게이션)이 있기를 원한다. 그래서 대화 상자의 open 이벤트 핸들러에 초점을 맞추어 첫 번째 버튼을 설정했다.
이 동작이 눈으로 보일 수도 있고 document.activeElement를 사용하여 확인할 수도 있습니다.하지만 초점이 도난 당했고 다른 것이 초점을 맞 춥니 다.
나는 지금까지 내가 더 이상 갈고리가 없으므로 초점이 무엇인지보아야한다고 생각하지 않습니다.
누구나 비슷한 문제가 나타 났습니까? '그러나 그들은 돈 - 나는 또한 그것의 jQuery 버튼을 추가 한 참고 -
경우 당신은 관심에서, 내 코드는이 (아래에 설명 된대로 초점을 추가 개정) doc.ready에서
입니다 키보드 이벤트에 모두 반응하는 것 같습니다.하지만 그것은 별개의 질문입니다.
$("#dialogSearchType").dialog
(
{
bgiframe: true,
height: 180,
width: 350,
modal: true,
autoOpen: false,
show: 'drop',
hide: 'fold',
buttons: { "Street": function() { HandleSearchStreetClick(); $(this).dialog("close"); },
"Property": function() { HandleSearchPropertyClick(); $(this).dialog("close"); }
},
focus: function(event, ui) { $("#btnSearchTypeProperty").focus(); }
}
);
<div id="dialogSearchType" class="searchDialog" style="width: 280px; display: none" title="Search For..." onkeyup="HandleSearchTypeDialogKeyUp(event)">
<span>What would you like to search for?</span>
<br />
<input type="button" tabindex="1" id="btnSearchTypeStreet" class="button" value="Street" onclick="HandleDialogSearchStreetClick()" />
<input type="button" tabindex="2" id="btnSearchTypeProperty" class="button" value="Property" />
</div>
여기서 알 수 있듯이 이벤트 처리기를 추가했지만 아무런 변화가 없습니다.
감사했다 흥미로운 솔루션을 찾을 수 있습니다. 내가 가지고있는 다른 BIG Q (나는 별도의 질문으로 생각합니다)는 내장 된 버튼 (버튼 옵션 사용)이 키보드 입력을 전혀받지 않는다는 것입니다. jQuery UI가 표시 될 때 jQuery UI가 포커스 중 하나에 포커스를 설정하는 것을 볼 수 있지만 작동하는 유일한 키보드 이벤트는 대화 상자를 닫는 ESC입니다! :( – Duncan