【问题标题】:Knockout custom binding for jQuery UI Sortable - strange behaviorjQuery UI Sortable 的淘汰自定义绑定 - 奇怪的行为
【发布时间】:2012-03-31 00:16:48
【问题描述】:

我正在使用 jQuery Sortable 和 Knockout 来维护一个数组。

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

请注意,当您拖动项目时,它们会重复或消失。

有人知道我该如何解决这个问题吗?

【问题讨论】:

    标签: jquery-ui knockout.js


    【解决方案1】:

    当您使用 jQuery UI sortable 移动事物时,KO 的项目映射会根据空文本节点而变得有些混乱。

    您可以消除“模板”中的文本节点,例如:http://jsfiddle.net/rniemeyer/KrGY8/5/

    或者删除现有项目并分两步将其放回正确位置(更新 observableArray 两次):http://jsfiddle.net/rniemeyer/KrGY8/4/

    我还编写了一个绑定插件,用于在 Knockout 中使用 jQuery 可排序,它在此处提供了一些附加功能:https://github.com/rniemeyer/knockout-sortable

    【讨论】:

    • 我使用了你的插件,我的第一印象是它很好用!感谢您提供。
    • 感谢 RP,这为我节省了相当多的时间。我也提出了第二个建议,效果很好。
    • 很棒的插件;我挣扎了好几个小时才找到这个,它就像一个魅力。希望我能多次投票。
    • 我正在使用可排序插件的扩展版本以允许将多个选定的项目一起移动,因此我目前无法使用您的插件,因此我使用了关于空文本节点的第一个提示并修复了我的模板相应地。现在一切似乎都运行良好。谢谢。
    【解决方案2】:

    解决此问题的一种简单方法是首先清除绑定的 observableArray,如下所示:

    list([]);
    

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

    list(actualArray);
    

    查看更新的fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多