在以下代码中:
$(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
答案 0 :(得分:19)
使用 keydown 代替按键,某些浏览器在按下“特殊键(如箭头)”时不会触发按键
答案 1 :(得分:3)
jQuery的keypress
方法不是很稳定。请改用on('keydown')
。
答案 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;
}