【问题标题】:jQuery Isotope - sort data by "group"jQuery Isotope - 按“组”对数据进行排序
【发布时间】:2012-01-11 15:10:45
【问题描述】:

使用 Isotope 插件,我试图实现一个排序系统,在该系统中,通过单击一个项目,通过在单击的项目之后定位相同类型的项目来形成组。

Isotope 的排序/过滤功能似乎不是为此目的而设计的,所以我最初的方法是使用 .insertAfter 重新排列 DOM,然后触发“reLayout”。

但是,似乎在初始化之后 DOM 顺序是不相关的,除了破坏和重新初始化 Isotope 之外没有任何作用,但这会导致不希望的滚动位置跳跃。

(参见:http://jsfiddle.net/owenhoskins/r7MgY/10896/

有没有办法在不重新初始化的情况下根据 DOM 结构更新同位素?

或者,是否可以与排序/过滤函数接口来实现这一目标?

提前致谢, 欧文

【问题讨论】:

  • 我确信我们可以使用更复杂的排序系统,但您需要更好地描述最终结果应该是什么。在您的示例中,您希望单击之前的元素保持未排序? (除非它们是相同的颜色?)点击几下后,整个表格按类型分组。这是您想要的(与您的演示完全相同)吗?
  • 感谢您的评论。我基本上想围绕该组的“单击”元素重新定位组的元素,同时保持其他组元素的位置不变。在我的演示中,最终结果将是按类型分组的整个表格。

标签: jquery jquery-isotope


【解决方案1】:

您会考虑使用不同的插件来完成此操作吗? 看一看:Quick Sand 它的功能在于用另一个元素替换一组元素,在我看来比同位素简单得多。

这是一个与您想要获得的结果类似的示例: Quick sort example

【讨论】:

  • Quick Sand 似乎没有显示所有这些并对其进行分组。它摆脱了不属于该组的那些人。而且我没有使用 Quick Sand,但它看起来是 JS 与 Isotope 的两倍或更多。
【解决方案2】:

尝试this 代替(一个分叉的小提琴) - 使用文档中的 prepend 方法对我有用,并且不会跳转。

【讨论】:

  • 感谢您的回复,叉子按照您的描述工作,但我试图保留单击项目的位置,同时在项目之后重新定位剩余的组项目(通过使用 .insertAfter 修改 DOM)
  • 它不是已经这样做了吗?我将点击的项目设为蓝色更明显 - jsfiddle.net/wkMUr/3 该位置保持不变,而该组的所有其他人都在其后追加:或者我仍然没有完全得到你想要的东西?
  • 对,你是……!不知何故错过了,猜测它只是 reloadItems 而不是 reLayout 等,感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多