我在这里做错了什么?我的想法是,我可以将箭头按键与其他任何东西分开,但每次按键都会触发警告“你按了一个箭头键”。任何帮助都会很棒!
jsFiddle此处或:
<input id='foo'>
<script>
$('#foo').keyup(function (e) {
var key = e.keyCode;
if ($.inArray(key, [37, 38, 39, 40])) {
alert('you pressed an arrow key');
} else {
alert("you didn't press an arrow key");
}
});
</script>
答案 0 :(得分:30)
你必须检查它是否返回索引&gt; -1。如果数组中没有出现键,则索引为-1:
if ($.inArray(key, [37, 38, 39, 40]) > -1)
答案 1 :(得分:3)
jQuery inArray函数返回值的索引。对于左箭头键(37),它返回0并且它被解释为false。您应该将代码更改为&gt; = 0
if ($.inArray(key, [37, 38, 39, 40]) > -1)
答案 2 :(得分:3)
$ .inArray方法返回元素的索引(如果它在数组中),如果它不在数组中,则返回-1,因此不能将其用作if条件。将其更改为:
if($.inArray(key, [37, 38, 39, 40]) >= 0)) {
}