Tengo un problema de usabilidad en un sitio web mío. Tengo un conjunto de pestañas, cada una contiene un formulario. Cuando hace clic en el enlace de la pestaña, le da enfoque al primer cuadro de texto en el cuerpo del contenido de la pestaña. A las personas orientadas al ratón les encanta esta "característica". El problema es cuando los usuarios orientados al teclado usan la tecla TAB en su teclado para ir a través de las pestañas. Pulsan Enter en la pestaña que quieren mirar, el evento click se dispara y aparece la pestaña, pero se enfoca en el cuadro de texto, ajustando completamente el orden de las pestañas. Entonces, cuando vuelven a presionar la pestaña, quieren ir a la siguiente pestaña de la pantalla, pero como el foco se movió dentro del formulario, no pueden acceder fácilmente a la siguiente pestaña usando el teclado.jQuery click event - ¿Cómo saber si se hizo clic con el mouse o se presionó la tecla Intro?
Por lo tanto, dentro del evento click tengo que determinar si realmente hicieron clic con un botón del mouse. es posible? Mi primer intento fue la siguiente:
$("#tabs li a").click(function(e) {
var tab = $(this.href);
if(e.keyCode != 13)
$("input:first", tab).focus();
});
Pero keyCode
es siempre 0. La propiedad which
también es siempre 0. Por favor, ayuda!
Probablemente pueda hackearlo colocando un controlador .focus() en el cuadro de texto con un poco de lógica. – krasnerocalypse
@krasnericalypse Err, en realidad no. Una vez que se da un enfoque al cuadro de texto/menú desplegable, es demasiado tarde para recuperarlo. –
jaja. Esta es una pregunta difícil. – krasnerocalypse