在下面的代码片段中,Ctrl+Enter (event.which == 13
) 正在运行。但是,Ctrl+R (event.which == 9
) 不是。
if ($('.selector')) {
$(document).keypress(function(event) {
if ( event.altKey && event.which == 13 ) {
$('.link a').trigger('click');
} else if ( event.altKey && event.which == 82 ) {
$('.link a').trigger('click');
} else {
return false;
}
});
}
最佳答案
您的代码的问题是 keyPress
监听器 behaves differently并使用一组不同的keyCode。对于 keyPress
,r
键是 114
而对于 keyDown
,它是 82
。
另外一个问题是浏览器的默认重新加载功能将覆盖您的功能,因为按键是在您释放按键后执行的。要解决此问题,请将 keypress
更改为 keydown
。
$(document).keydown(function(e){
if(e.which === 82 && e.ctrlKey){ //keycode is 82 for keydown
alert("Pressed!");
e.preventDefault(); //stop browser from reloading
}
});
http://jsfiddle.net/DerekL/3P9NS/show
PS: Firefox 似乎忽略了 e.preventDefault
(根据 W3C 标准它应该忽略)。支持所有浏览器的最佳做法是选择其他组合,或使用 ctrl + alt + r
。
if(e.which === 82 && e.ctrlKey && e.altKey){
关于javascript - 键盘快捷键 ctrl+r 对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178207/