jQuery up键/向下键按键检测不起作用?

时间:2013-07-01 19:18:15

标签: javascript jquery

在以下代码中:

$(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/

我在使用chrome

4 个答案:

答案 0 :(得分:19)

使用 keydown 代替按键,某些浏览器在按下“特殊键(如箭头)”时不会触发按键

答案 1 :(得分:3)

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

请参阅:http://jsfiddle.net/K9uDn/9/

答案 2 :(得分:0)

on('keyup')在IE中不起作用。至少不是第9版。

答案 3 :(得分:0)

以下是javascript代码固定版本的小提琴 with extra buttons trapped using a switch/case statement

$(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;
        }