同位素的二级排序可能吗?

时间:2013-02-08 21:07:27

标签: jquery jquery-isotope

我已经找到所有计算出的排序代码,并且它按预期工作。 我喜欢二次过滤器的选项。

我有一个类似的系列:

<div id="member1" class="sortItem" data-factor="2">
    <span class="name">Jobs</span>
</div>
<div id="member2" class="sortItem" data-factor="2">
    <span class="name">Wayne</span>
</div>
<div id="member3" class="sortItem" data-factor="3">
    <span class="name">Wozniak</span>
</div>

因此,如果我对数据因素进行排序,我最终得到(缩写):

+-------------+-------------+
   NAME           FACTOR
+-------------+-------------+
Wozniak         3
Wayne           2
Jobs            2

但我想要的是次要排序,总是按字母顺序排列:

+-------------+-------------+
   NAME           FACTOR
+-------------+-------------+
Wozniak         3
Jobs            2
Wayne           2

和数据因子的反向排序(再次单击排序按钮):

+-------------+-------------+
   NAME           FACTOR
+-------------+-------------+
Jobs            2
Wayne           2
Wozniak         3

关于如何实施第二种排序的任何想法?

干杯!

2 个答案:

答案 0 :(得分:1)

排序方法只返回一个字符串或数字,按字母顺序或数字顺序排序。

如果你想要两者结合,最低公分母是一个字符串

唯一剩下的问题是如何按字母顺序排序数字。您可以通过添加前导0来填充它们。根据您的收藏品的大小,您可能需要1,2或3位数。

e.g。

对于3位数(最多1000个元素)您的排序键将变为类似:

003Wozniak
002Jobs
002Wayne

这会按照你想要的方式排序。

答案 1 :(得分:1)

实际上,您可以按多种方式排序,查看同位素网站的setSourceData示例...

getSortData: {
    sort1: function($elem) {
        return parseInt($elem.attr('data-category-sort1'), 10);
    },
    bywidth: function($elem) {
        return $elem.width();
    },
    byname: function($elem) {
        return $elem.find('.name').text();
    }
    // more...
}