1

如果我有一个链接并且想要绑定一个键盘快捷键,我应该怎么做?这似乎不起作用:

<a id="next" href="/next/page">Next page</a>
<script src="mousetrap.js"></script>
<script>
  Mousetrap.bind("n", function() {
    document.getElementById("next").click();
  });
</script>
4

2 回答 2

0

您是否有特定原因需要单击该链接?像这样的东西对你有用吗?

Mousetrap.bind("n", function() {
    window.location.href = "/next/page"; //Or document.getElementById('next').href as in Robert's response.
});

此外,这可能会有所帮助:如何以编程方式单击 JavaScript 中的元素?

于 2013-07-10T13:38:41.610 回答
0

我认为您的代码无法正常工作的原因有两个,而且我不是 JS 专家;我只是根据我的小经验说这些。

  • 您假设为 Anchor 标签定义了 onClick 函数。即使是这样 - 您还没有定义该 onclick 函数中发生的情况。

  • 您应该使用外部函数来实现相同的目的;所以有效地拥有一个可以点击的锚标签和一个当用户按下“N”时也将用户带到所需页面的功能。

我试图将我的想法变成一个小解决方案;请看下面,看看你是否能找出你可能出错的地方。我会让一些 JS 经验丰富的人告诉你到底哪里出了问题以及为什么它不起作用。

<html>
<head>
<title>mouse trap test</title>
</head>
<body>
    <a id="next" href="next/page">Next page</a>
<script src="mousetrap.js"></script>
<script>

function GoToLocation(url)
  {
    //window.location = "http://www.stackoverflow.com";
    window.location = url;
  }

  Mousetrap.bind("n", function() {
    //alert('N pressed' + document.getElementById("next").href);
    //document.getElementById("next").click();
    GoToLocation(document.getElementById("next").href);
  });


</script>
</body>
</html>

我希望以上内容有所帮助。

于 2013-07-10T13:39:23.063 回答