如何在Javascript和/或jQuery中将功能绑定到左右箭头键?我看了一下jQuery的js-hotkey插件(包装了内置的bind函数以添加一个参数来识别特定的键),但是它似乎不支持箭头键。
在JS / jQuery中绑定箭头键
除了使用return false;
上面的示例中的方法外,您可以使用e.preventDefault();
这样做,但更易于理解和阅读。
我只是简单地结合了其他答案的优点:
$(document).keydown(function(e){
switch(e.which) {
case $.ui.keyCode.LEFT:
// your code here
break;
case $.ui.keyCode.UP:
// your code here
break;
case $.ui.keyCode.RIGHT:
// your code here
break;
case $.ui.keyCode.DOWN:
// your code here
break;
default: return; // allow other keys to be handled
}
// prevent default action (eg. page moving up/down)
// but consider accessibility (eg. user may want to use keys to choose a radio button)
e.preventDefault();
});
您确定jQuery.HotKeys不支持箭头键吗?我在之前弄乱了他们的演示,并在IE7,Firefox 3.5.2和Google Chrome 2.0.172中对其进行测试时观察到左右,上下的工作情况。
编辑:看来jquery.hotkeys已重定位到Github:https : //github.com/jeresig/jquery.hotkeys
这有点晚了,但是HotKeys有一个非常重要的错误,如果您将多个热键附加到一个元素上,则会导致事件多次执行。只需使用普通的jQuery。
$(element).keydown(function(ev) {
if(ev.which == $.ui.keyCode.DOWN) {
// your code
ev.preventDefault();
}
});
$(document).keydown(function(e){
if (e.which == 37) {
alert("left pressed");
return false;
}
});
字符代码:
37-左
38以上
39-对
40-下
您可以检查是否
arrow key
按下了: