在JS / jQuery中绑定箭头键

如何在Javascript和/或jQuery中将功能绑定到左右箭头? 我查看jQuery的js-hotkey插件(包装内置绑定函数以添加参数以识别特定键),但似乎不支持箭头键。


$(document).keydown(function(e) {
    switch(e.which) {
        case 37: // left
        break;

        case 38: // up
        break;

        case 39: // right
        break;

        case 40: // down
        break;

        default: return; // exit this handler for other keys
    }
    e.preventDefault(); // prevent the default action (scroll / move caret)
});

将您的自定义代码放在相应casebreak之间的箭头键中。

e.which是通过jQuery规范化的,所以它适用于所有浏览器。 对于纯JavaScript方法,请将前两行替换为:

document.onkeydown = function(e) {
    e = e || window.event;
    switch(e.which || e.keyCode) {


(编辑2017)
如果你觉得奇怪,你可以使用e.key而不是e.whiche.keyCodee.key正在成为推荐的标准,允许您检查字符串: 'ArrowLeft''ArrowUp''ArrowRight''ArrowDown' 。 新的浏览器本地支持它,请点击此处。


$(document).keydown(function(e){
    if (e.keyCode == 37) { 
       alert( "left pressed" );
       return false;
    }
});

字符代码:

37 - 离开

38岁以上

39 - 对

40 - 下


您可以使用箭头键的keyCode(左,上,右和下)分别为37,38,39和40:

$('.selector').keydown(function (e) {
  var keyCode = e.keyCode || e.which,
      arrow = {left: 37, up: 38, right: 39, down: 40 };

  switch (keyCode) {
    case arrow.left:
      //..
    break;
    case arrow.up:
      //..
    break;
    case arrow.right:
      //..
    break;
    case arrow.down:
      //..
    break;
  }
});

在这里检查上面的例子。

链接地址: http://www.djcxy.com/p/19523.html

上一篇: Binding arrow keys in JS/jQuery

下一篇: How to prevent defaut behaviour of "input submit"?