明らかisKeyDown()
に、 JSには機能がありません。とはいえ、これはあなたのニーズに合うはずです:
function noMetakeyPressed(metakeysPressed) {
for (var k in metakeysPressed) {
if (metakeysPressed[k]) {
return false;
}
}
return true;
}
var metakeysPressed = {17: false, 18: false};
$('body')
.bind('keydown', function(event) {
switch(event.keyCode) {
case 17: // Ctrl
case 18: // Alt
metakeysPressed[event.keyCode] = true;
break;
case 66: // B
if (noMetakeyPressed(metakeysPressed)) {
alert("B pressed");
}
break;
}
})
.bind('keyup', function(event) {
if(event.keyCode === 17 || event.keyCode == 18) {
metakeysPressed[event.keyCode] = false;
}
});
デモ
単一のブール変数を使用することもできますが、現在押されているメタキーisMetakeyPressed
を知る必要があるかもしれません。