尝试使用使用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>
原来我设置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)
代替。
谢谢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
});
谢谢Koes,我试过这个方法还是没有运气... – MarCrazyness 2013-03-27 14:57:14
谢谢你的回复!我现在要试试:) – MarCrazyness 2013-03-26 19:38:07
原来我设置了accesskey属性,并试图使用jquery设置热键。 – MarCrazyness 2014-01-08 23:06:39