7

在以下代码中:

$(document).keypress(function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 40) {
            alert("down pressed");
        } else if (code == 38) {
            alert("up pressed");
        }
    });

我正在尝试检测是否按下了向下键或向上键。为什么它不起作用?

小提琴 http://jsfiddle.net/K9uDn/10/

我在铬

4

4 回答 4

21

使用keydown而不是keypress ,当按下“特殊键(如箭头)”时,某些浏览器不会触发keypress

于 2013-07-01T19:25:15.997 回答
3

jQuery 的keypress方法不是很稳定。改为使用on('keydown')

见:http: //jsfiddle.net/K9uDn/9/

于 2013-07-01T19:25:37.093 回答
1

这是固定版本的 javascript 代码 的Fiddle ,带有使用 switch/case 语句捕获的额外按钮

$(document).on('keydown',function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        switch (code){
          case 34:
            alert("Page down pressed");
            break;
          case 33:
            alert("Page up pressed");
            break;
          case 40:
            alert("Down pressed");
            break;
          case 38:
            alert("Up pressed");
            break;
          case 37:
            alert("Left pressed");
            break;
          case 39:
            alert("Right pressed");
            break;
        }
于 2016-12-01T20:33:43.967 回答
0

on('keyup') 在 IE 中不起作用。至少在版本 9 中没有。

于 2014-02-10T18:11:46.743 回答