javascript - 键盘快捷键 ctrl+r 对我不起作用

标签 javascript jquery

在下面的代码片段中,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。对于 keyPressr 键是 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/

相关文章:

javascript - Bootstrap 轮播开始加载 WordPress

javascript - 使用 PHP 中的 JSON 数据填充 jQuery Select2() 控件

javascript - application/json 和 json only 之间有什么区别?

jquery - onclick 事件不适用于 ipad 和平板电脑

jquery - 进度条没有动画或出现

javascript - 使用 $(this) 和 jQuery 访问内部文本

jquery - 在 jQuery Ajax 函数中将整个表单作为数据传递

javascript - Node.js - 语法错误 : Unexpected token import

javascript - jQuery 和纯 Javascript 验证的区别

javascript voice.synthesis.speak 属性