我正在尝试检测 javascript 中的一些组合键。我需要检测Ctrl+ Left、Ctrl+ Right、Right和Left.
到目前为止,我只是想检测何时Ctrl按下。这是我所拥有的(JSFiddle 链接):
var keys = {};
$(document).keydown(function (e) {
keys[e.which] = true;
printKeys();
});
$(document).keyup(function (e) {
delete keys[e.which];
printKeys();
});
function printKeys() {
var html = '';
for (var i in keys) {
html += '<p>i: ' + i + '</p>'
if (!keys.hasOwnProperty(i)) continue;
if ($.inArray(17, keys) > -1)
html += '<p>ctrl was pressed, return val: ' + $.inArray(17, keys) + '</p>'
}
$('#out').html(html);
}
我想我真的不明白 JQueryinArray
应该如何工作,因为当我按下任何键时,它只会返回 -1。if 语句的计算结果也为 true,而我只希望它在Ctrl按下时这样做。我该如何解决这个问题,以便我的 if 语句正确检测到Ctrl被按下?一旦我让它正常工作,我将能够解决剩下的问题。
编辑:更改 if 语句以评估inArray
返回> -1