Javascript Cmd+B键与jQuery的组合

Javascript Cmd+B键与jQuery的组合,javascript,jquery,keyboard,Javascript,Jquery,Keyboard,我试图用jQuery检测组合键,我已经研究了几个小时,试图找到一个可行的解决方案。在mac电脑上,使用ctrl键而不是command键似乎一切都很好。这段代码几乎正是我想要的,但我怎样才能使它与命令一起工作呢 $.ctrl = function(key, callback, args) { var isCtrl = false; $(document).keydown(function(e) { if(!args) args=[]; // IE barks whe

我试图用jQuery检测组合键,我已经研究了几个小时,试图找到一个可行的解决方案。在mac电脑上,使用ctrl键而不是command键似乎一切都很好。这段代码几乎正是我想要的,但我怎样才能使它与命令一起工作呢

$.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;
    });
};
这应该起作用:

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

为什么会发生keyup事件?我可能错了,但我认为修改键在keyup上不起作用,但在keydown上起作用。

哦,好吧,args是什么?它应该是什么?我刚刚修改了代码的相关部分…还有为什么$.ctrl=functionkey,callback,args??哦!我懂了。现在开始工作了。这是我在某处找到的jquery插件。