2012-10-11 205 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 =向上箭頭鍵事件

我希望這將有助於。