如何在jquery中获取右、左、上和下箭头键值

5
我使用了以下代码,但每当按向左、向右、向上或向下箭头时,我得到的键值都是“0”。有人能帮忙解决这个问题吗?
 $(document).keypress(function (e) {

 alert("key value: " + e.which); 

  });

如何在keypress事件中获取(向上、向下、向右、向左)箭头键值。


可能是 jQuery Keypress Arrow Keys 的重复问题。 - James Donnelly
2个回答

5
请使用 keydown 代替 keypress
 $(document).keydown(function(event){    
    var key = event.which;                
            switch(key) {
              case 37:
                  // Key left.
                  break;
              case 38:
                  // Key up.
                  break;
              case 39:
                  // Key right.
                  break;
              case 40:
                  // Key down.
                  break;
        }   
  });

1
jQuery 确保 event.which 在所有浏览器上都能正常工作(包括那些本地支持 event.keyCode 而不是 event.which 的浏览器):http://api.jquery.com/event.which。 - James Donnelly
是的,这样更好,已添加在答案中。 - Sarath
谢谢Sarath..这非常有帮助。 - Bharathi

2

在许多浏览器中,keypress事件无法识别箭头键(也不能识别像“shift”、“del”、“esc”等的键)。如果你想捕获这些按键,则需要改用keydownkeyup

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

    alert("key value: " + e.which); 

});

JSFiddle演示

至于右、左、上和下箭头键,它们分别是:

left     37
up       38
right    39
down     40

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接