【问题标题】:keyboard navigation with arrow keys (next and back) for changing filenames用于更改文件名的带有箭头键(下一个和后退)的键盘导航
【发布时间】:2012-09-22 19:50:09
【问题描述】:

我有一堆具有不同文件名的 html 文件,我需要添加一个选项来使用键盘箭头键导航(上一个和下一个文件)。

文件名不是动态的。例如:filename.html、anotherfile.html、thirdone.html 等等

所以我需要 .js 文件中用于导航的内容,以及我应该链接 html 文件上的上一个、下一个按钮的内容?

【问题讨论】:

  • 这个问题太模糊了。例子?代码?你试过什么?
  • 看起来更像是一个不知道从哪里开始处理此类导航的人。它似乎很容易回答,对于以后遇到类似问题的人来说,这可能是一个很好的信息来源。

标签: javascript jquery keyboard-navigation


【解决方案1】:

如果您要在两个 <a> 标记上定义两个 ID,如下所示:

<a id="prev" href="filename.html">prev</a>
<a id="next" href="thirdone.html">next</a>

您可以在 navigation.js 中执行类似的操作,并将其包含在每个页面中:

// when the document is ready, run this function
jQuery(function( $ ) {
    var keymap = {};

    // LEFT
    keymap[ 37 ] = "#prev";
    // RIGHT
    keymap[ 39 ] = "#next";

    $( document ).on( "keyup", function(event) {
        var href,
            selector = keymap[ event.which ];
        // if the key pressed was in our map, check for the href
        if ( selector ) {
            href = $( selector ).attr( "href" );
            if ( href ) {
                // navigate where the link points
                window.location = href;
            }
        }
    });
});

您甚至可以使用一点 CSS 来制作 #prev, #next { display: none; } 或使用绝对定位的 CSS triangles。

【讨论】:

  • 非常感谢您的回答。我试了一下:我将上面的代码放在一个名为 navigation.js 的文件中,然后在 html 文件中我放了前两行,在 之前我放了这个: (并使用这些名称创建了 2 个 html 文件),但仍然无法正常工作,并且在 Internet Explorer 中它给出了“脚本错误”:“属性 'jquery' 为 null 或未定义,不是函数对象"
  • 在包含该脚本之前,您需要包含 jQuery
  • super.. 我在头部添加了这个并且它有效: 非常感谢
  • 您可能还能够帮助我通过以下问题跟踪事件:stackoverflow.com/questions/12986491/…,因为您在这里的回答非常清晰,步骤简单
  • 如果您要更改页面的实际位置,则很难跟踪,因为当您更改页面位置时,它将卸载当前页面并替换为新页面。您最好“跟踪”页面加载而不是“键盘导航”事件
猜你喜欢
  • 2016-03-28
  • 1970-01-01
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
相关资源
最近更新 更多