2009-07-31 8 views
0

Y at-il un moyen de faire en sorte que la flèche gauche se comporte comme le bouton de tabulation (mise au point suivante) et que la flèche droite se comporte comme un décalage? à l'élément focalisable précédent)?Réglage de la mise au point à l'aide des flèches gauche et droite (HTML + JS)

Je suis arrivé jusqu'ici:

$().keypress(function(e) { 
    if (e.keyCode == 37) { 
     alert('I want to do a shift-tab'); 
    } 
    else if (e.keyCode == 39) { 
     alert('I want to do a tab'); 
    } 
}); 

Mais Google n'est pas utile que si je pensais que je mettrais un petit post ici pendant que je google un peu plus.

Merci!

Oh, et c'est purement pour FF3.0, donc je n'ai pas besoin de m'inquiéter des autres nuisances du navigateur.

Répondre

5

Ce que vous avez jusqu'ici semble bien.

Vous pouvez garder une liste d'éléments « vario » et juste itérer sur la liste en gardant un pointeur vers l'actuel:

// or $('input')..depends what you want to focus on 
var nodes = $('.focusable'), idx = -1; 
$().keypress(function(e) { 
    if (e.keyCode === 37) { 
    nodes.get(++idx).focus(); 
    } 
    else if (e.keyCode === 39) { 
     nodes.get(--idx).focus(); 
    } 
}); 

Ceci est juste une esquisse bien. Vous devez vérifier le idx avant de faire quelque chose pour vous assurer de ne pas dépasser le début ou la fin du tableau d'éléments focalisables. Vous devrez également faire attention lorsque vous appelez ceci lorsque l'utilisateur se trouve dans une zone de texte.