【问题标题】:Cmd + B key combination with jQueryCmd + B 与 jQuery 的组合键
【发布时间】:2012-02-21 07:32:16
【问题描述】:

我正在尝试使用 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;
    });
};

【问题讨论】:

    标签: javascript jquery keyboard


    【解决方案1】:

    这应该可行:

    $(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 = function(key, callback, args)??
    • 哦!我懂了。现在可以工作了。这是我在某处找到的 jquery 插件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2012-05-25
    • 2012-10-30
    • 1970-01-01
    • 2016-05-04
    相关资源
    最近更新 更多