jQuery UI的淘汰赛自定义绑定可排序 - 奇怪的行为

问题描述:

我使用jQuery Sortable和Knockout来维护一个数组。jQuery UI的淘汰赛自定义绑定可排序 - 奇怪的行为

http://jsfiddle.net/daniel_white/KrGY8/3/

请注意,当你拖动的项目,他们复制或消失。

任何人都知道我可以解决这个问题吗?

当您使用jQuery UI排序来移动事物时,KO的项目映射会基于空文本节点而变得有点混乱。

您可以消除你的“模板”之类的文本节点:http://jsfiddle.net/rniemeyer/KrGY8/5/

或删除现有的项目,并把它回到正确的位置在两个步骤(更新observableArray两次):http://jsfiddle.net/rniemeyer/KrGY8/4/

我还写了一个插件绑定在淘汰赛jQuery的排序,提供一些额外的功能,在这里工作:https://github.com/rniemeyer/knockout-sortable

+1

谢谢!你的第二个技巧做到了。 – 2012-03-14 15:14:22

+2

我使用了你的插件,我的最初印象是它效果很棒!感谢您提供它。 – Brian 2012-03-22 02:39:07

+0

感谢RP,这为我节省了相当一段时间..我也和第二个建议一起去了,它像一个魅力。 – Kon 2013-01-28 21:39:33

一个简单的方法来解决这个问题,首先清除绑定observableArray,像这样:

list([]); 

然后用正确的数组更新它:

list(actualArray); 

检查更新fiddle