Jquery UI 自动完成向上键清除我的 div 中的 html

标签 jquery jquery-ui jquery-ui-autocomplete

我在内容可编辑 div 上使用 jquery ui 自动完成功能。使用@作为触发器。问题是,即使我将焦点事件设置为返回 false:

  focus: function () {
     return false;
  },

使用向上和向下箭头时。如果我在第一个项目上并按向上键。或者,如果我在最后一个结果上并使用向下键。 jquery ui 自动完成正在清除 div 内的所有 html 元素。

可以在这里看到http://jsfiddle.net/YGP8a/

知道为什么或者我可以做些什么来解决这个问题吗?谢谢!

最佳答案

当您按向上或向下键退出菜单时,会调用一个内部函数,该函数会用 request.term 替换 div 中的所有内容,从而删除您的输入,因为正如您在你的 fiddle 的 console.log(term)response.term 只有文本(忽略你的样式输入)。

因此,在查看了 jquery-ui 自动完成源代码之后,就像您重写 _rederItem 函数一样,我重写了 _move 函数,它似乎可以工作。

这是你编辑过的 fiddle http://jsfiddle.net/YGP8a/1/ .

希望有帮助!

编辑:

为了完整起见,您必须添加以下内容:

$("#testDiv").data("autocomplete")._move = function( direction, event ) {
    if ( !this.menu.element.is( ":visible" ) ) {
        this.search( null, event );
        return;
    }
    if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
            this.menu.isLastItem() && /^next/.test( direction ) ) {
            //this._value( this.term ); <-- Here it is!
        this.menu.blur();
        return;
    }
    this.menu[ direction ]( event );
}

关于Jquery UI 自动完成向上键清除我的 div 中的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17735378/

相关文章:

javascript - JQuery 追加元素超出父 div 宽度?

javascript - 如何在 jquery 自动完成中绑定(bind)按键事件?

javascript - 通过页面导航转到页面时,jQuery UI 自动完成功能不起作用

javascript - 如何在单击和悬停时更改 td 元素背景?

javascript - Jquery:计算xml中的节点分离

jquery - 仅选择第一级元素,不选择具有相同元素名称的子元素

javascript - jQuery 文本扩展器插件 : Error for know the browser

jQuery 自动完成 : On select parse other key from the same array

jquery - 结合 jQuery 可拖动、可放置和可排序

JQuery UI 弹出元素定位不正确