-1

我正在使用 Chrome 并尝试使用 JQuery 将alt+a映射到一个输入,并将alt+shift+a映射到另一个输入。我已经使用 chrome 对其进行了调试,但仍然无法弄清楚。我很困惑,这是做到这一点的最佳方式。我不确定这是否可能。我也尝试在两个输入上都使用 accesskey="a" 但在这种情况下它只是命中第二个输入。

任何想法或帮助将不胜感激。谢谢

<!DOCTYPE html>
<html>
   <head>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"/>
      <script type="text/javascript" language="JavaScript">
         $(document).ready( function () {
         $(document).keyup('alt+a',       function () { $('suc').click(); });
         $(document).keyup('alt+shift+a', function () { $('try').click(); } );
         });
      </script>
   </head>
   <body>
      <form>
         <input type="submit" formaction="file:///C:/Users/me/Desktop/success.html" value="Success" accesskey="a" id="suc">
         <input type="submit" formaction="file:///C:/Users/me/Desktop/tryAgain.html" value="TryAgain" accesskey="a" id="try" >
      </form>
   </body>
</html>
4

3 回答 3

1

我强烈建议使用https://github.com/keithamus/jwerty来处理键盘事件。

它看起来像这样

jwerty.key('alt+a', function() {
    // success
});

jwerty.key('alt+shift+a', function() {
    // try again
});
于 2013-03-26T00:04:31.317 回答
0

原来我设置了 accesskey 属性并试图使用 jquery 设置热键。

Chrome 听起来好像发生了错误。我用这篇文章寻求帮助:http ://www.openlogic.com/wazi/bid/188026/Easy-Keyboard-Shortcuts-for-Web-Pages

我将继续使用https://github.com/tzuryby/jquery.hotkeys

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
        $(document).keyup(
            function(e) {
                e = e || window.event; // because of Internet Explorer quirks...
                k = e.which || e.charCode || e.keyCode; // because of browser differences...
                if (k == 65 && e.altKey && !e.ctrlKey && !e.shiftKey) {
                    $('form').prop('action', 'file:///C:/Users/me/Desktop/tryAgain.html').submit();
                } else if (k == 65 && e.altKey && !e.ctrlKey && e.shiftKey) {
                    $('form').prop('action', 'file:///C:/Users/me/Desktop/success.html').submit();
                } else {
                    return true; // it's not a key we recognize, move on...
                }
                return false;
        });
</script>
</head>
<body>
<form>
<input type="submit" formaction="file:///C:/Users/me/Desktop/success.html" value="Success" id="suc">
<input type="submit" formaction="file:///C:/Users/me/Desktop/tryAgain.html" value="TryAgain" id="try" >
</form>
</body>
</html>
于 2013-04-08T21:36:25.280 回答
0

嗯,alt+shift+a 在 Chrome 中似乎没有按预期响应,可能存在冲突。我正在使用以下代码同时触发 alt+a 和 alt+shift+a 触发#try:

$(window).on('keypress', function(e){
    if(e.altKey && e.which===97)
        $('#suc').trigger('submit');
});
$(window).on('keypress', function(e){
    if(e.altKey && e.shiftKey && e.which===97)
        $('#try').trigger('submit');
});

你可以试试if(e.altKey && e.ctrlKey && e.which===97)#try。

于 2013-03-25T23:16:16.110 回答