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

时间:2009-07-31 04:30:37

标签: javascript jquery html focus setfocus

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

我已经走到这一步了:

$().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,所以我不需要担心其他浏览器的麻烦。

1 个答案:

答案 0 :(得分:5)

到目前为止你所拥有的一切似乎很好。

你可以保留一个“可聚焦”项目列表,只需遍历列表,保持指向当前项目的指针:

// 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以确保不会滑过可聚焦元素数组的开头或结尾。当用户在文本框内时,您还需要小心调用它。