JQuery,通过语句检查是否按了箭头键

JQuery,通过语句检查是否按了箭头键,jquery,switch-statement,arrow-keys,Jquery,Switch Statement,Arrow Keys,我已经设置了一个按键功能,我想根据是否按下左、右、上或下箭头键来做不同的事情。这是使用switch语句实现的,但我也希望在按下任何箭头键时执行一些操作,但无法理解。我的代码: $(document).keydown(function (e) { var keyCode = e.keyCode || e.which, arrow = {left: 37, up: 38, right: 39, down: 40 }, switch (keyCode) { case arrow.

我已经设置了一个按键功能,我想根据是否按下左、右、上或下箭头键来做不同的事情。这是使用switch语句实现的,但我也希望在按下任何箭头键时执行一些操作,但无法理解。我的代码:

$(document).keydown(function (e) {

var keyCode = e.keyCode || e.which,
    arrow = {left: 37, up: 38, right: 39, down: 40 },

switch (keyCode) {

    case arrow.left:
        // do something left
    break;

    case arrow.right:
        // do something right
    break;
}       

}); 
我真的很想要一行代码,在这里我可以检查是否按下了任何箭头键,但无法找出它,例如:

case arrow:
    // do something for any arrow keys
break;
仅使用“case arrow”似乎不起作用。有人能帮忙吗

提前谢谢

编辑:谢谢大家的帮助。这是我的最终代码,供大家参考:

$(document).keydown(function (e) {

    if (e.which >= 37 && e.which <= 40) {
        $('p.key-notification').fadeOut('slow');
    }

    var keyCode = e.keyCode || e.which,
    arrow = {left: 37, up: 38, right: 39, down: 40 },

    switch (keyCode) {

        case arrow.left:
            // do something left
        break;

        case arrow.right:
            // do something right
        break;
    }       

}); 
$(文档).keydown(函数(e){

如果(e.which>=37&&e.which为什么也必须在您的
开关
语句中

在切换后,单独声明
if

if (keyCode >= 37 && keyCode <= 40) {
    // run your code here
}

if(keyCode>=37&&keyCode单个
switch
语句无法在多个条件下匹配-您可能会失败,但这不会对后续情况下的表达式求值,也不会达到预期效果。我会这样做:

if (keyCode >= 37 && keyCode <= 40) {
   // do any processing for _any_ arrow key here if it should happen
   // before individual arrow key processing

   switch (keyCode) {

      case arrow.left:
        // do something left
        break;

      case arrow.right:
        // do something right
        break;
   }

   // do any processing for _any_ arrow key here if it should happen
   // after individual key processing
}
if (keyCode === arrow.left || keyCode === arrow.right
   || keyCode === arrow.up || keyCode === arrow.down) {

如果我理解正确的话,这应该适合你的需要

增加可读性的另一种方法

var  arrow = { left: 37, up: 38, right: 39, down: 40 };
其中任何一个

switch (evt.keyCode) {
    case arrow.right:
    case arrow.left:
    case arrow.up:
    case arrow.down:
        // Do something
        break;
}
其中一个

switch (evt.keyCode) {
    case arrow.right:
        // Do right
        break;
    case arrow.left:
        // Do left
        break;
    case arrow.up:
        // Do up
        break;
    case arrow.down:
        // Do down
        break;
}

case-arrow.left:case-arrow.right:case-arrow.up:case-arrow.down://do something for arrows break;
这可能永远不会执行,或者总是执行,而不是
switch
语句中的每个特定arrows代码块。为此,我使用了这个,尽管我不得不使用“e”检查按下了哪个键,因为“keyCode”没有返回任何值,不知道确切的原因是什么?谢谢你的回答,这也让它非常简洁!