如何覆盖箭头键以像右箭头键一样工作

时间:2012-10-11 11:46:23

标签: javascript jquery jquery-plugins jquery-events

再次期待你的帮助。面对小可能是愚蠢的问题。我正在为我的工作创建一个小的jQuery插件。该插件应该是完全可定制的。除了这个任务,我几乎完成了所有事情。

实际上,当用户点击输入元素并按下向上和向下箭头时,我需要分别增加和减少值。但是应该使用哪个箭头键是可自定义的。如果用户选择“updown”,那么up和arrow键应该有效。如果用户选择'leftright',则左右箭头键应分别用于增加和减少值。在这种情况下,用户需要使用向上和向右箭头键来向右和向左移动光标。因为现在左右箭头键用于其他目的。

实际上我有一个解决方案是可以使用插入位置。但是有没有其他简单的方法可以帮助我们轻松完成这项工作。

PS:对不起,如果我的问题困扰你们任何人。

2 个答案:

答案 0 :(得分:2)

您可以使用对象存储密钥代码..类似这样的

<select id="keys" >
    <option value="updown"> Up - Down </option>
    <option value="leftright"> Left - Right</option>
</select>


var keys = {
    updown:{
        inc:38,
        dec:40
    },
    leftright:{
        inc:37,
        dec:39
    }
}

document.onkeyup = function KeyUp(e) {
    var selected = document.getElementById("keys");
    var keyCode = (window.event) ? event.keyCode : e.keyCode;
    if(keys[selected.value].inc === keyCode){
       alert("increase.........");
    }else if(keys[selected.value].dec === keyCode){
       alert("decrease.........");
    }
}

演示:http://jsfiddle.net/2qaJf/1/

注意:请在尝试演示时清除select元素的焦点。

答案 1 :(得分:0)

我对这个问题感到很困惑,但我明白你想要使用向上箭头键来制作箭头键。

$(document).keydown (function (e) {
  if(e.which == 38){
  console.log("up arrow pressed - put right arrow key function or trigger the right arrow key event here"); 
  }
});

38 =向上箭头键事件

我希望这会有所帮助。