尝试使用使用ALT和ALT + SHIFT

问题描述:

我使用Chrome浏览器,并试图使用jQuery映射ALT + A到一个输入和ALT + SHIFT +一个到另一个输入热键相同的字母。我已经通过它使用chrome进行了调试,但仍然无法弄清楚。我很困惑,因为这是最好的方式。我不确定这是否可能。我也尝试在两个输入上使用accesskey =“a”,但在这种情况下,它只是触及第二个输入。尝试使用使用ALT和ALT + SHIFT

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

<!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> 
+0

谢谢你的回复!我现在要试试:) – MarCrazyness 2013-03-26 19:38:07

+0

原来我设置了accesskey属性,并试图使用jquery设置热键。 – MarCrazyness 2014-01-08 23:06:39

原来我设置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> 

嗯,alt + shift + a似乎没有在Chrome中预期的响应,也许有冲突。我得到两个Alt + A和ALT + SHIFT +用下面的代码触发#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'); 
}); 

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

+0

谢谢Nolo,是的,我检查了chromes保留键和Alt + Shift + a是不是保留? – MarCrazyness 2013-03-27 15:01:22

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

它看起来会像这样

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

jwerty.key('alt+shift+a', function() { 
    // try again 
}); 
+0

谢谢Koes,我试过这个方法还是没有运气... – MarCrazyness 2013-03-27 14:57:14