2

设想:

我目前正在使用 KnockoutJS、jQuery UI 的 sortable 和 Masonry。我使用 Knockout 显示卡片列表,使用 Masonry 正确排列卡片,并使用 sortable 对卡片进行排序。

这些卡片的大小相似,但我稍后会介绍不同的大小,所以我肯定需要 Masonry 来帮我安排它们。

我正在为可排序对象使用自定义的 bindingHandler 函数,这样当用户对卡片进行排序时,项目的位置会在淘汰 observableArray 中更新。

问题:

由于淘汰赛可排序功能将项目从最后一个位置移除并将其放回新位置,因此砌体混乱并且不知何故可排序也无法正常运行。我发现如果我只是在不使用 Masonry 的情况下将所有卡片都浮起来,可排序的工作正常。

我计划在 sortable 开始时撤消 Masonry,并在 sortable 停止时将其放回。但是我不知道如何解除 Masonry 的绑定。有办法吗?或者至少是一种让它工作的方法。

这是我正在尝试做的原型:http: //jsbin.com/avujom/9/edit

4

1 回答 1

0

您可以使用砌体的破坏来移除砌体。所以它完全删除了砌体功能。这将使元素返回到其预初始化状态。并且您可以在需要时创建砖石元素msnry = new Masonry( container );。你也可以使用布局方法。

于 2015-04-29T09:18:03.703 回答