ここで何が間違っているのか考えてみてください。それを理解することはできません...それはarr
等しいではないと言います[17, 67]
var key = function(keys, fn) {
var arr = [];
$(document).on({
keydown: function(e) {
arr.push(e.which);
if (arr === keys) {
fn();
}
},
keyup: function() {
arr = [];
}
});
};
// ctrl + c
key([17, 67], function() {
alert(true);
});
これがフィドルです
アップデート
Cymenの答えは機能するので、+を押してctrlから+ +aをctrl押すaltかa、またはその逆の場合、機能するために2番目のショートカットを2回起動する必要があります。
新しいフィドル。
var key = function(keys, fn) {
var arr = [];
$(document).on({
keydown: function(e) {
arr.push(e.which);
for (var i = 0; keys[i]; i++) {
if (arr[i] !== keys[i]) {
return false;
}
}
fn(e);
arr = [];
},
keyup: function() {
arr = [];
}
});
};
// ctrl + c
key([17, 67], function() {
alert(true);
});
// ctrl + alt + c
key([17, 18, 67], function() {
alert('ctrl+alt+c');
});