Комбинация клавиш Cmd + B с jQuery - PullRequest
2 голосов
/ 21 февраля 2012

Я пытаюсь определить комбинации клавиш с помощью jQuery, я искал последние несколько часов, пытаясь найти работоспособное решение.Кажется, все отлично работает с клавишей ctrl, но не с клавишей Command на 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;
    });
};

1 Ответ

5 голосов
/ 21 февраля 2012

Это должно работать:

$(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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...