我试图在javascript中检测多个按键组合。我需要检测按Ctrl +左,按Ctrl +右键,右,并左。在javascript中检测多个按键
到目前为止,我只是试图检测何时按下Ctrl。下面是我有(JSFiddle link):
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);
}
我想我真的不知道如何JQuery的inArray
应该工作,因为当我按下任何键,它只返回-1。 if语句也评估为true,而我只希望它按Ctrl。我该如何解决这个问题,以便我的if语句正确检测到Ctrl被按下?一旦我得到了正确的工作,我就可以找出其他问题。
编辑:改变if语句来评价inArray
返回> -1
['$ .inArray'](http://api.jquery.com/jQuery.inArray)< - 如果你不明白它是如何工作的话,可能是一个很好的开始:) –
@AndrewWhitaker谢谢安德鲁,if语句现在读取'if($ .inArray(17,keys)> -1)'尽管'html + ='
i''+ i +'
'popping仍然没有选择17出17。 – tnw