【问题标题】:jquery override keydown function back to defaultjquery覆盖keydown函数恢复为默认值
【发布时间】:2010-09-28 03:19:34
【问题描述】:

我正在使用 jeegoo 上下文菜单 jquery 插件,它会覆盖箭头键以导航菜单。我在菜单中有一个输入字段,当在输入字段中时,左右箭头键不起作用。

有没有一种方法可以添加异常,以便当我在输入字段中时左右箭头键恢复为默认行为?

这是按键覆盖的代码。

$(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();

【问题讨论】:

  • 这个绑定是在什么上执行的?
  • 它绑定到 $(document)。我更新了上面的代码。为简单起见,我在其前面仅排除了一些额外的鼠标悬停和单击绑定。

标签: jquery keystroke


【解决方案1】:

只需确保不为您希望为其默认行为的元素调用 e.stopPropagation()。

【讨论】:

    【解决方案2】:

    我正在使用的插件的开发人员回复了我一个解决方案来覆盖输入字段的按键控件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多