kwb
09-08-2013, 18:59
Ciao a tutti!
Ho una struttura html come questa nella mia pagina:
<body>
<div id="Pers1">testo vario</div>
<div id="Pers2">testo vario</div>
<div id="Pers3">testo vario</div>
<div id="Pers4">testo vario</div>
<div id="Pers5">testo vario</div>
</body>
E ho fatto uno script in JS ( principalmente scritto con jQuery ) per spostarmi da un elemento all'altro alla pressione dei tasti J e K ( come succede(va) con Google Reader, 9GAG, e molti altri lettori RSS ).
Lo script funziona, ma ritengo che si possa migliorare, tuttavia non so come eseguire l'implementazione.
La mia implementazione attuale sfrutta tutto un sistema di id personalizzati e indici che trovo macchinosa e non ottimale.
In buona sostanza utilizzo l'evento jQuery keydown sul body:
$('body').keydown(function(e){//Istruzioni});
Per spostarmi da un elemento all'altro. Tuttavia vorrei cambiare il focus e spostarlo dal body sull'elemento corrente, in partenza sul div con id Pers1.
Questo perchè, una volta fatto così, posso scrivere una funzione che al keydown, utilizza solo .prev() e .next() per trovare l'elemento precedente/successivo al quale andare.
Ho provato a cambiare il focus ma senza successo. Ho tentato un:
document.activeElement = $('div#Pers1');
e anche
$('div#Pers1').focus();
Ma senza successo. Il focus rimane sempre sul body.
Soluzioni?
Ho una struttura html come questa nella mia pagina:
<body>
<div id="Pers1">testo vario</div>
<div id="Pers2">testo vario</div>
<div id="Pers3">testo vario</div>
<div id="Pers4">testo vario</div>
<div id="Pers5">testo vario</div>
</body>
E ho fatto uno script in JS ( principalmente scritto con jQuery ) per spostarmi da un elemento all'altro alla pressione dei tasti J e K ( come succede(va) con Google Reader, 9GAG, e molti altri lettori RSS ).
Lo script funziona, ma ritengo che si possa migliorare, tuttavia non so come eseguire l'implementazione.
La mia implementazione attuale sfrutta tutto un sistema di id personalizzati e indici che trovo macchinosa e non ottimale.
In buona sostanza utilizzo l'evento jQuery keydown sul body:
$('body').keydown(function(e){//Istruzioni});
Per spostarmi da un elemento all'altro. Tuttavia vorrei cambiare il focus e spostarlo dal body sull'elemento corrente, in partenza sul div con id Pers1.
Questo perchè, una volta fatto così, posso scrivere una funzione che al keydown, utilizza solo .prev() e .next() per trovare l'elemento precedente/successivo al quale andare.
Ho provato a cambiare il focus ma senza successo. Ho tentato un:
document.activeElement = $('div#Pers1');
e anche
$('div#Pers1').focus();
Ma senza successo. Il focus rimane sempre sul body.
Soluzioni?