使用 :tabbable to find next and previous tabbable element 的 jQuery UI

标签 jquery jquery-ui

我正在尝试使用 jQuery UI :tabbable选择器来选择页面上的下一个和上一个输入元素。我有以下 html

<div id="section1">1.
    <input type="text" />2.
    <input type="text" />
</div>
<div id="section2">3.
    <input type="text" />4.
    <input type="text" />5.
    <input type="text" />
</div>

以及以下 JavaScript

$(document).ready(function () {
    $("input").on("keyup", function (event) {
        if (event.keyCode == 40) $(this).next(":tabbable").focus();
        else if (event.keyCode == 38) $(this).prev(":tabbable").focus();
    });
});

选择器似乎在 div 中工作正常。例如,如果我在输入 3 中并按下,它将转到输入 4。但是,如果我按下选择器,则无法找到输入 2。我似乎不知道如何找到页面上的上一个可选项元素。

Example jsfiddle

最佳答案

您可以使用输入元素的 .index() 作为在它们之间切换的方式。

$("input").on("keyup", function (event) {
    if (event.keyCode == 40) {
        $('input').eq(parseInt($('input').index($(this)), 10) + 1).focus();
    } else if (event.keyCode == 38) {
        $('input').eq(parseInt($('input').index($(this)), 10) - 1).focus();
    }
});

<强> jsFiddle example

关于使用 :tabbable to find next and previous tabbable element 的 jQuery UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14875775/

相关文章:

javascript - 使用 For 循环初始化 JQuery Accordion

javascript - 使用 jquery 进行 Onsubmit URL 重定向

php - 无限滚动多列?

jquery - 卷起嵌套 jQuery Accordion 中的子元素

javascript - 如果它有数据但类型或值不正确

jQuery 对话框和 960 网格系统

javascript - 在 jQuery 中的最后一个 tr 的正下方添加 tr

jquery - 如何使布局垂直响应

jquery - 如何让div可以被里面的图片拖动

jQuery UI 对话框按钮定位