我已经找到所有计算出的排序代码,并且它按预期工作。 我喜欢二次过滤器的选项。
我有一个类似的系列:
<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
关于如何实施第二种排序的任何想法?
干杯!
答案 0 :(得分:1)
排序方法只返回一个字符串或数字,按字母顺序或数字顺序排序。
如果你想要两者结合,最低公分母是一个字符串。
唯一剩下的问题是如何按字母顺序排序数字。您可以通过添加前导0来填充它们。根据您的收藏品的大小,您可能需要1,2或3位数。
对于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...
}