【问题标题】:Making Mousetrap click a link制作捕鼠器点击链接
【发布时间】:2013-07-10 13:13:45
【问题描述】:

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

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

【问题讨论】:

    标签: javascript keyboard-shortcuts mousetrap


    【解决方案1】:

    由于我不是 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>
    

    希望以上内容有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      另外,这可能会有所帮助:How do I programmatically click on an element in JavaScript?

      【讨论】:

        猜你喜欢
        • 2014-02-25
        • 2023-03-29
        • 2011-01-08
        • 2016-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-13
        相关资源
        最近更新 更多