我目前正在使用此Javascript kepypress代码在按键时触发事件:
$(document).keydown(function(e) {
switch(e.keyCode) {
case 39:
e.preventDefault();
alert("Arrow Key");
break;
case 37:
e.preventDefault();
alert("Arrow Key");
}
});
但我想知道的是,如果我可以而不是绑定一个键绑定两个键的组合。我可以做点什么:
$(document).keydown(function(e) {
switch(e.keyCode) {
case 39 && 37:
e.preventDefault();
alert("Arrow Key");
break;
}
});
答案 0 :(得分:25)
如果你想一次检查多个键,你应该只使用一个常规键和一个或多个修改键(alt / shift / ctrl),因为你不能确定在用户的同时可以实际按下两个常规键。键盘(实际上,它们总是被按下但由于键盘的连接方式,PC可能无法理解它。)
您可以使用e.altKey,e.ctrlKey,e.shiftKey字段来检查是否按下了匹配的修饰键。
示例:
$(document).keydown(function(e) {
if(e.which == 98 && e.ctrlKey) {
// ctrl+b pressed
}
});
答案 1 :(得分:3)
为什么不使用if
而不是switch
?
$(document).keydown(function(e) {
if ((e.keyCode === 37) || (e.keyCode === 39)) {
e.preventDefault();
alert("Arrow Key");
}
});
答案 2 :(得分:3)
您可以使用案例通过:
$(document).keydown(function(e) {
switch(e.which) {
case 39:
case 37:
e.preventDefault();
alert("Arrow Key");
break;
}
});
请注意,我使用e.which
代替e.keyCode
使其在所有浏览器中都有效(jQuery会自动将实际包含密钥代码的属性分配给e.which)。