2009-07-31 8 views
0

Gibt es irgendwelche, die den linken Pfeil wie die Tab-Schaltfläche (Fokus zum nächsten fokussierbaren Element) und den rechten Pfeil wie eine Shift + Tab (Fokus festlegen) verhalten zum vorherigen fokussierbaren Element)?Einstellen des Fokus mit den Links- und Rechtspfeilen (HTML + JS)

Ich habe so weit gekommen:

$().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'); 
    } 
}); 

aber Google ist nicht so hilfreich, so dachte ich, dass ich eine kurze Nachricht hier oben setzen würde, während ich einige mehr Google.

Danke!

Oh, und es ist rein für FF3.0, also muss ich mich nicht um andere Browserbelästigungen kümmern.

Antwort

5

Was Sie bisher haben scheint gut.

Sie können eine Liste von "fokussierbar Stücke halten und nur durch die Liste durchlaufen einen Zeiger auf die aktuelle zu halten:

// 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(); 
    } 
}); 

Dies obwohl nur eine grobe Skizze ist. Sie müssen die idx überprüfen, bevor Sie etwas tun, um sicherzustellen, dass Sie nicht über den Anfang oder das Ende des Arrays für fokussierbare Elemente hinausrutschen. Sie müssen auch vorsichtig sein, wenn Sie den Benutzer anrufen, wenn er sich in einer Textbox befindet.