이 글을 읽으려면 먼저 다음 이벤트(w3c에서 발췌)를 이해해야 합니다.
블러 이벤트: 블러 이벤트는 요소가 포커스를 잃을 때 발생합니다.
포커스 이벤트: focus() 메서드는 텍스트 필드에 포커스를 주는 데 사용됩니다(특정 요소가 포커스 이벤트를 받을 수도 있음).
tabIndex 속성: tabIndex 속성은 버튼의 탭 키 제어 순서를 설정하거나 반환할 수 있습니다.
블러는 양식 컨트롤에만 적용된다는 것을 모두 알고 있지만, 범위, div, li 등의 경우 해당 작업을 트리거할 방법이 없습니다. 이제 포커스를 트리거하려면 tabindex 속성만 설정하면 됩니다. . 이벤트.
실제 프로젝트 코드:
Esc.PopupMenu.prototype._createPopup=function(){
var popupDiv = $('
') //div 생성
popupDiv.appendTo(this. _owner.element ); //div에 범위 추가
var _popup=popupDiv[0]
_popup.hide=function(){
popupDiv.hide()},
_popup.show =function(){
popupDiv.show();
popupDiv.focus();
//div를 포커스 가져오기
};
popupDiv.blur(function(){
popupDiv.hide();
})
return _popup; 🎜>이 단락 코드의 의미는 div를 사용하여 createPopup을 시뮬레이션하고(IE에서는 직접 생성할 수 있음) 생성 시 tabindex 속성을 부여한 다음 범위를 추가하고 표시 및 숨기기를 지원하도록 한다는 것입니다. 특히 주목할만한 것은 popupDiv, focus()입니다. div에 포커스를 주어야 합니다. 그렇지 않으면 포커스가 없으면 포커스를 잃게 됩니다.