Javascript 使用左右箭头(HTML+;JS)设置焦点

Javascript 使用左右箭头(HTML+;JS)设置焦点,javascript,jquery,html,focus,setfocus,Javascript,Jquery,Html,Focus,Setfocus,是否有任何方法使左箭头的行为类似于tab按钮(将焦点设置为下一个可聚焦项),右箭头的行为类似于shift+tab(将焦点设置为上一个可聚焦项) 我已经走了这么远: $().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

是否有任何方法使左箭头的行为类似于tab按钮(将焦点设置为下一个可聚焦项),右箭头的行为类似于shift+tab(将焦点设置为上一个可聚焦项)

我已经走了这么远:

$().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');
    }
});
但是谷歌并没有那么大的帮助,所以我想我应该在这里放一个快速的帖子,同时我可以搜索更多

谢谢


哦,这纯粹是为了FF3.0,所以我不需要担心其他浏览器的麻烦

到目前为止,您所拥有的似乎还不错

您可以保留一个“可聚焦”项目列表,只需在列表中循环,并保留指向当前项目的指针:

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

不过,这只是一个粗略的轮廓。在执行某些操作之前,您需要检查
idx
,以确保不会滑过可聚焦元素数组的开头或结尾。当用户在文本框中时,您还需要小心调用此选项。

到目前为止,您所拥有的似乎还不错

您可以保留一个“可聚焦”项目列表,只需在列表中循环,并保留指向当前项目的指针:

// 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();
    }
 });
不过,这只是一个粗略的轮廓。在执行某些操作之前,您需要检查
idx
,以确保不会滑过可聚焦元素数组的开头或结尾。当用户在文本框中时,您还需要小心调用此选项