2010-09-28 71 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()没有为您想要默认行为的元素调用。