jQuery Isotope – 按类别排序,但指定哪个先来

我正在寻找一种排序行为,一种与特定类别相匹配的行为,并将其带到列表的前面。 像filter一样,除了不删除其他项目。

想象一下同位素网格中的这些类别项:

  • 红色
  • 绿色
  • 蓝色
  • 红色
  • 绿色
  • 蓝色

如果按类别排序,则按字母顺序显示:

  • 蓝色
  • 蓝色
  • 绿色
  • 绿色
  • 红色
  • 红色

我想要的是将特定类别浮动到前面,例如“绿色”,如下所示:

  • 绿色
  • 绿色
  • 红色
  • 红色
  • 蓝色
  • 蓝色

这可能吗?

我已经尝试为每个类别添加一个getSortData函数,如下所示:

  green : function( $elem ) { var $greenItems = $elem.filter('.green'); var $otherItems = $elem.filter(':not(.green)'); return $greenItems.add($otherItems); } // repeat for blue, red, etc 

但那没用。

这对我有用:

 green : function( $elem ) { var isGreen = $elem.hasClass('green'); return (!isGreen?' ':''); }, // etc 

演示: http : //jsfiddle.net/Yvk9q/9/