javascript - 使用 JS/jQuery 组合按键(Escape & Shift +Escape)

标签 javascript jquery jquery-events

在 js/jQuery 中有没有办法拥有这两种按键组合?

ESCape

SHIFT + ESCape

当我实现它时使用:

document.onkeydown = function(e){if (e == null) {keycode = event.keyCode;}
else         {keycode = e.which;}
if(keycode == 27){closeAll();}}

//upon pressing shift + esc
$(document).bind('keypress',function(event)
{
      if(event.which === 27 && event.shiftKey)
    {
  closetogether();
   }

});

escape 按钮工作得很好,但我认为带有 shift + esc 的按钮变得困惑,因为它什么都不做。不用担心,当我将组合键 27 更改为 90 (z) 时,该功能可以正常工作。

有人可以选择我更好的方法吗?

最佳答案

为什么不使用 jQuery 绑定(bind) keydown 事件?这样你就已经有了一个规范化的事件变量。您还可以在同一处理程序中检查 shift 键的状态。

这些事件发回不同的键码。使用 keyup/keydown 通过扫描码捕获某些键,使用 keypress 通过字符捕获实际输入的文本。

$(document).bind('keydown', function(event) {
    if(event.which === 27){
        if(event.shiftKey){
            closetogether();
        } else {
            closeAll();
        }
    }
});

关于javascript - 使用 JS/jQuery 组合按键(Escape & Shift +Escape),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148691/

相关文章:

javascript - Jquery 替换文本区域中的字符串

javascript - 防止 DOM 元素折叠时页面跳转

javascript - 在显示页面之前运行脚本

javascript - jQuery (window).load 页面加载后?

javascript - 学习用于数据可视化的 d3.js

javascript - 使用javascript将带有类名的span添加到字符串的某些字符

javascript - 在没有 Node 的情况下将 React 移动到单独的组件文件中

javascript - 使用基于 Codeigniter 的 Jquery Java 刷新 html 表

Javascript修改元素事件函数的参数

javascript - 使用 jquery 映射对象字段