Ho un problema di usabilità su un mio sito web. Ho una serie di schede, ognuna contenente un modulo. Quando si fa clic sul collegamento della scheda, si concentra sulla prima casella di testo nel corpo del contenuto della scheda. Le persone orientate al mouse amano questa "caratteristica". Il problema è quando gli utenti orientati alla tastiera usano il tasto TAB sulla loro tastiera per scorrere le schede. Colpiscono invio nella scheda che vogliono guardare, l'evento click si attiva e la scheda viene visualizzata, ma l'attenzione viene data alla casella di testo, regolando completamente l'ordine di tabulazione. Quindi, quando premono di nuovo la scheda, vogliono andare alla scheda successiva sullo schermo, ma poiché l'attenzione è stata spostata all'interno del modulo, non possono facilmente accedere alla scheda successiva utilizzando la tastiera.jQuery click event - Come sapere se il mouse è stato premuto o il tasto Invio è stato premuto?
Quindi, all'interno dell'evento click ho bisogno di determinare se effettivamente hanno cliccato su di esso con un pulsante del mouse. È possibile? Il mio primo tentativo è stato questo:
$("#tabs li a").click(function(e) {
var tab = $(this.href);
if(e.keyCode != 13)
$("input:first", tab).focus();
});
Ma keyCode
è sempre 0. La proprietà which
è sempre 0. Si prega di aiutare!
Probabilmente ci si può incappare mettendo un gestore .focus() sulla casella di testo con un po 'di logica. – krasnerocalypse
@krasnericalypse Err, non proprio. Una volta che l'attenzione è stata data alla casella di testo/menu a discesa, è troppo tardi per recuperare. –
haha. questo è difficile. – krasnerocalypse