如何使用javascript/jquery跟踪修改器键?

如何使用javascript/jquery跟踪修改器键?,javascript,jquery,keyboard-shortcuts,Javascript,Jquery,Keyboard Shortcuts,我的要求很简单:用户按Ctrl键,我的页面上会出现一些通知,当发布通知时这些通知就会消失,所以我需要跟踪修改键,比如Ctrl键。不幸的是,我在谷歌上搜索并没有找到任何线索,一些著名的键盘库,如和keymaster似乎也没有涉及到这个主题 有什么想法吗?使用jQuery,您只需使用keydown和keydup事件处理程序,就可以看到Ctrl键上下移动。如果你想跟踪它是下降还是上升,那么只需在它下降时设置一个全局标志,上升时清除该标志 示例代码: $(document).keydown(functi

我的要求很简单:用户按Ctrl键,我的页面上会出现一些通知,当发布通知时这些通知就会消失,所以我需要跟踪修改键,比如Ctrl键。不幸的是,我在谷歌上搜索并没有找到任何线索,一些著名的键盘库,如和
keymaster
似乎也没有涉及到这个主题


有什么想法吗?

使用jQuery,您只需使用keydown和keydup事件处理程序,就可以看到Ctrl键上下移动。如果你想跟踪它是下降还是上升,那么只需在它下降时设置一个全局标志,上升时清除该标志

示例代码:

$(document).keydown(function(e) {
    if (e.which == 17) {
        $("#result").append("ctrl key pressed<br>");
    }
});
$(文档).keydown(函数(e){
如果(e.which==17){
$(“#结果”)。追加(“按ctrl键
”; } });
e.com上的JQuery文档,其中:


工作演示:

修改键触发
向下键
(但不是
按键
)。然后,您可以简单地检查事件对象上定义的标志<代码>移位键,
备用键
快捷键
元键
,等等

这里有一个完整的列表:

试试这个-

var ctrlKey = false;
window.onkeydown = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = true;
    }
};
window.onkeyup = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = false;
    }
};
function notify() {
    if(ctrlKey) {
        $('#notification').show();
    } else {
        $('#notification').hide();
    }
}
function main() {
    var _inter = setInterval(notify, 100);
}

main();

为什么要用定时器?为什么不在按键按下/按下时隐藏/按下通知呢。您有一个更改状态的事件。你不需要调查各州。我只想指出,捕鼠器确实涵盖了修饰符的使用。我不确定这篇文章发表时他们是否报道过,但现在它已经出现在他们的头版了。执行如下操作:Mousetrap.bind('command+shift+k',function(e){/*dothings*/};