【问题标题】:How can I use JavaScript / jQuery to trigger tab (9) keypress when the spacebar (32) is clicked?单击空格键 (32) 时,如何使用 JavaScript / jQuery 触发 tab (9) 按键?
【发布时间】:2014-11-18 22:12:18
【问题描述】:

jQuery 新手在这里试图弄清楚按键/触发功能的所有技巧......

本质上,我试图让空格键充当制表键的作用,专注于 HTML 中具有指定 tabindex 的下一个元素。

这是我可能正在使用的一些示例 HTML:

<div id="item_1" class="clickable" tabindex="1"></div>
<div id="item_2" class="clickable" tabindex="2"></div>
<div id="item_3" class="clickable" tabindex="3"></div>

这是我现在尝试使用的 jQuery,但没有成功:

$('.clickable').keydown(function(e) {
    if (e.keyCode == 32) {
        e.which = 9;
        $(this).trigger(e);
    }
});

我确实已经看到了这篇文章:Simulate Keypress With jQuery,但没有发现它太有帮助,也许我忽略了基本概念。似乎解决方案没有明确链接两个不同键的操作。

【问题讨论】:

    标签: jquery events keypress eventtrigger tabindex


    【解决方案1】:

    试试这个:

    $('.clickable').keydown(function(e) {
        if (e.keyCode == 32) {
            $(this).next().focus();
        }
    });
    

    【讨论】:

    • 嗯,这样的作品。现在它可以让我使用空格键在屏幕上切换一次,然后停止,除非我继续使用 Tab 键。我还必须已经“专注于”一个带有 tabindex 的元素才能做任何事情(这意味着我不能只打开网页并开始空格键)。这是因为 HTML tabindexes 在到达最后一个标签索引时会自动循环返回,包括在 url 地址栏中的停止。这就是为什么我希望触发一个实际的选项卡按键,而不是仅仅转移焦点。有什么想法吗?
    • 我以为你只想要 .clickable 类。如果您想在整个页面上显示它,请改为定位 $(document)
    • 所以当我尝试 $(document).keydown... 空格键不再做任何事情,即使我已经在一个 .clickable 元素上
    • 嗯...在$('[tabindex]').is(':focus') 上尝试一些if 条件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多