2012-10-11 154 views
0

再次期待您的帮助。面对一个小问题可能是一个愚蠢的问题。我正在为我的工作创建一个小型jQuery插件。该插件应该完全可定制。除了这项任务外,我几乎完成了一切。如何覆盖箭头键,如右箭头键

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

其实我有一个解决方案就是可以使用插入符的位置。但是有没有其他简单的方法可以帮助您轻松完成这项工作。 PS:抱歉,如果我的问题困惑你们中的任何一个。

在此先感谢。

+0

更改什么值?一个号码? –

+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/

注:请明确选择元素的焦点,当你尝试演示。

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 =向上箭头键事件

我希望这将有助于。