我正在使用 vanilla JS 脚本list.js并尝试实现自定义排序功能。
我一直在使用List APIsort
中的方法,正常排序没有问题,但是需要为几种情况创建自定义排序,但是因为他从未提供过示例,所以我不确定如何去做。
例如我有这个代码:
var options = {
valueNames: [ 'date', 'amount', 'company', 'name' ]
};
// Instantiate our list
var myList = new List('mylist', options);
// Set our default sort
myList.sort('date', {order: "desc"});
// Control our own sorting via the links
$('a.sort').on('click', function(event) {
// Prevent default action
event.preventDefault();
var element = $(event.target);
// Get sorting method
var method = element.attr('data-sort');
// Work out what way we want to order the results
switch (method) {
case 'date':
case 'amount':
var order = 'desc';
break;
case 'company':
case 'name':
var order = 'asc';
break;
default:
var order = 'desc';
}
// Sort the data
myList.sort(method, {order: order, sortFunction: function(a, b, options){
}});
return false; // IE 8
});
他从未说明该函数的预期签名,但我计算出它有 3 个填充数据的参数,前两个似乎包含排序列表中的元素,第三个具有某种选项。
我已阅读有关使用自定义排序功能的信息,但不确定如何在此处补充它们。
我们需要的一个例子是我们有一个日期列表,例如:
- 2015春夏
- 2014春夏
- 2013 冬季
- 2005 年秋季
它应该首先按最高数字排序(在本例中为 2015 年),然后按此顺序从头到尾进行季节排序:冬季、秋季、春季/夏季。
是否可以为类似的东西进行自定义排序,如果可以,如何使用此脚本实现?