5

我正在尝试动态更改 Isotope 项目的排序数据值,但 Isotope 似乎缓存了初始顺序值并且仅在'reLayout'调用时使用它。

我有一个项目页面,单击时将扩展为容器宽度的 100%。调整大小后,所有同位素项目都必须重新排序到特定位置。我遍历每个框并更新排序值。

下面的示例显示了两个同位素对象,顶部带有动画,产生正确的排序顺序值,但定位错误,第二个带有应该是正确结果的动画。

完整示例:http: //jsfiddle.net/eB85m/4/

无论如何 Isotope 是否可以检索新的排序数据或直接更新 Isotope 的排序数据值?

4

1 回答 1

11

您对 Isotope 缓存初始订单值是正确的——来自 Isotope 的文档

数据缓存建立在初始化的基础上,因此可以在排序时快速访问。

Isotope 提供了updateSortData……好吧,在初始化后更新排序数据的方法。这是一个有效的 jsfiddle

// Update sort data
// http://isotope.metafizzy.co/docs/methods.html#updatesortdata
$('#iso').isotope( 'updateSortData', $('#iso').children() );

到您的原始示例并评论了“重新布局” - 更新同位素的排序选项已经解决了这个问题(参考同位素的排序演示)。

V2 更新:

V2中,您可以使用$('#iso').isotope('updateSortData').isotope();
(根据下面的评论

于 2013-03-28T02:14:03.527 回答