입력 요소가 집중 될 때 yahoo.util.keylistener를 비활성화하려면 어떻게해야합니까?
-
03-07-2019 - |
문제
메뉴 바트 설정이 있습니다 Yui의 메뉴 바 위젯, 그리고 나는 a YAHOO.util.KeyListener
부착 문서 메뉴 및 하위 메뉴 항목에 빠르게 키보드에 액세스 할 수 있습니다 (예 : 설정 메뉴를 열려면 'S'). 문제는 Keylistener 사용자가 입력 요소에있을 때 여전히 발사됩니다. 예를 들어, 사용자가 입력 할 수 있습니다 수프 텍스트 필드에 들어가면 'S'문자로 인해 설정 메뉴가 열려 있습니다.
한 가지 해결책은 비활성화하는 것입니다 Keylistener 초점이 입력 요소에 초점을 맞추고 블러에 활성화하십시오. 이 작업을 어떻게할까요? 더 나은 솔루션이 있습니까?
해결책
키보드 바로 가기를 제공하려고 노력했지만 이것이 크로스 플랫폼을 구현하는 데 약간의 고통이 될 것임을 칭찬합니다. 가능하다면 사용하는 것이 좋습니다 액세스 키 ~에 <a>
태그.
당신이 아직 가고 있다면, 나는 추측한다 accesskey
당신을 위해 효과가 없습니다. 나는 당신이 읽었다고 가정 할 것입니다 관련 YUI 튜토리얼.
만약에 blur
그리고 focus
정말 올바른 방법입니다.
YAHOO.util.Event.onDOMReady(init);
function init() {
// set up the keyboard listeners
setUpExceptionsToKeyboardShortcuts();
}
function disableShortcuts() {
// Do what you've got to do
}
function enableShortcuts() {
// Do what you've got to do
}
function setUpExceptionsToKeyboardShortcuts() {
var focusable = document.getElementsByTagName('input');
focusable = focusable.concat(document.getElementsByTagName('select'));
focusable = focusable.concat(document.getElementsByTagName('textarea'));
YAHOO.util.Event.addListener(focusable, 'focus', disableShortcuts);
YAHOO.util.Event.addListener(focusable, 'blur', ensableShortcuts);
}
제휴하지 않습니다 StackOverflow