【问题标题】:Issue with jQuery autocomplete 1.9.2 and knockoutjQuery 自动完成 1.9.2 和淘汰赛的问题
【发布时间】:2013-02-04 03:58:09
【问题描述】:

我一直在使用这个来自 jsfiddle (from this initial SO question) 的淘汰赛绑定,它一直在工作。

升级到 jQuery 1.8.3 和 jQuery UI 1.9.2 (jsfiddle) 后,在输入中输入文本时,在填充项目列表后(但未选中!),输入文本框被清除并且您有从头开始输入。这很烦人,因为您总是必须从头开始,因此您将无法完成文本输入。

如果jqAutoSourceInputValuejqAutoSourceValue 具有相同的属性名称,它可以工作,但是选择后的id 或输入值不是所需的。

【问题讨论】:

标签: jquery-ui autocomplete knockout.js


【解决方案1】:

看起来问题出在绑定的 update 函数依赖于正在更新的 observableArray 的事实。我不太确定 jQuery UI 中发生了什么变化以使实际行为与以前相比发生变化,但一种解决方法是更新到 Knockout 2.2.1 并通过 peek 函数访问 observableArray 以避免依赖。比如:

var source = (ko.isObservable(allBindings.jqAutoSource) ? allBindings.jqAutoSource.peek() : allBindings.jqAutoSource) || [];

更新小提琴:http://jsfiddle.net/rniemeyer/xXuq6/

如果您无法更新到 KO 2.2.1,那么还有其他一些方法可以做到这一点。告诉我。

【讨论】:

  • 更新到 2.2.1 并且您的代码修复了它。你让我今天一整天都感觉很好!谢谢。
猜你喜欢
  • 2013-07-14
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2012-10-18
  • 2013-03-05
  • 1970-01-01
相关资源
最近更新 更多