¿Cómo puedo desactivar YAHOO.util.KeyListener cuando se enfoca un elemento de entrada?
-
03-07-2019 - |
Pregunta
Tengo una configuración de Barra de menús con el widget Barra de menús de YUI , y tengo un
Una solución sería deshabilitar keylistener cuando el foco está en un elemento de entrada, y habilitarlo en el desenfoque. ¿Cómo voy a hacer esto? ¿Hay una mejor solución?
Solución
Lo felicito por tratar de proporcionar atajos de teclado, pero tenga en cuenta que esto será un poco molesto para implementar multiplataforma. Si es factible, le recomiendo usar teclas de acceso en las etiquetas < a >
.
Si todavía vas, supongo que accesskey
no funcionará para ti. Asumiré que has leído el tutorial de YUI relevante .
Si blur
y focus
son realmente el camino correcto a seguir, usaría algo como
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);
}