2010-09-28 73 views
0

我使用jeegoo上下文菜單jquery插件,它覆蓋箭頭鍵爲了瀏覽菜單。我在菜單中有一個輸入字段,並且在輸入字段中左右箭頭鍵不起作用。jquery覆蓋keydown函數回到默認值

有沒有一種方法可以添加一個異常,以便當我在輸入字段時左右箭頭鍵恢復爲默認行爲?

下面是按鍵覆蓋的代碼。

$(document).bind('keydown.jeegoocontext', function(e){ 
switch(e.which) 
{ 
    case 38: //keyup 
     **misc code** 
     return false; 
    case 39: //keyright 
     **misc code** 
     return false; 
    case 40: //keydown 
     **misc code** 
     return false; 
    case 37: //keyleft 
     **misc code** 
     return false; 
    case 13: //enter 
     **misc code** 
     break; 
    case 27: //escape 
     **misc code** 
     break; 
    default: 
     break; 
} 
}).bind('keyup.jeegoocontext', function(e){ 
window.clearInterval(_global.keyUpDown); 
_global.keyUpDownStop = false; 
}); 

e.stopPropagation(); 
+0

什麼是執行此綁定? – 2010-09-28 14:00:02

+0

它綁定到$(document)。我更新了上面的代碼。只有一些額外的鼠標懸停和點擊前面的綁定,我爲了簡單而排除。 – getSurreal 2010-09-28 15:11:20

回答

0

我正在使用的插件的開發人員迴應了我的解決方案,以覆蓋輸入字段的按鍵控件。

$(‘myInputField’).keydown(function(e){ 
    {switch(e.which){ 
     case 39: e.stopPropagation();return true; 
     case 37: e.stopPropagation();return true;}}); 
0

只要確保e.stopPropagation()沒有爲您想要默認行爲的元素調用。