입력 요소가 집중 될 때 yahoo.util.keylistener를 비활성화하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/155445

문제

메뉴 바트 설정이 있습니다 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);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top