Cmd + B与jQuery的组合

Ada*_*dam 2 javascript keyboard jquery

我正在尝试使用jQuery检测关键组合,我一直在研究最后一次,几个小时试图找到一个可行的解决方案.似乎一切都很好用ctrl键,但不是Mac上的命令键.这段代码几乎就是我想要的,但是如何使用命令呢?

$.ctrl = function(key, callback, args) {
    var isCtrl = false;
    $(document).keydown(function(e) {
        if(!args) args=[]; // IE barks when args is null

        if(e.ctrlKey) isCtrl = true;
        if(e.keyCode == key.charCodeAt(0) && isCtrl) {
            callback.apply(this, args);
            return false;
        }
    }).keyup(function(e) {
        if(e.ctrlKey) isCtrl = false;
    });
};
Run Code Online (Sandbox Code Playgroud)

elc*_*nrs 5

这应该工作:

$(document).keydown(function (e) {
    if (!args) { args = []; }
    if (e.which === 98 && (e.ctrlKey || e.metaKey)) { // Ctrl + b
        callback.apply(this, args);
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

为什么是keyup事件?我可能是错的,但我认为修饰键不起作用,keyup()但它们确实存在keydown().