我有以下代码:
$.extend($.fn.dataTableExt.oSort, {
"datetime-uk-pre": function (a) {
from = a.split(' ');
var ukDatea = from[0].split('/');
var ukTimea = from[1].split(':');
return (ukDatea[2] + ukDatea[1] + ukDatea[0] + ukTimea[1] + ukTimea[0]) * 1;
},
"datetime-uk-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"datetime-uk-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
$.extend($.fn.dataTableExt.oSort, {
"date-uk-pre": function (a) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
Run Code Online (Sandbox Code Playgroud)
我读到有关延伸但仍然不明白它在做什么.有人可以帮忙解释一下.我正在寻找的是尽可能简单的解释.我也可以用某种方式组合这两个代码块.
这是为数据表提供不同排序方式的代码.但是这是什么意思:
$.fn.dataTableExt.oSort
Run Code Online (Sandbox Code Playgroud)
DataTables在基础包中提供了几个排序选项.您正在查看的那个称为基于类型的列排序,它基本上将尝试根据其类型对列进行排序.数据表已经规定默认的排序功能的最常见类型,如Date,Numeric和HTML.这些在被调用的对象中注册为属性,oSort可以使用$.fn.dataTableExt.oSort.这个对象看起来像这样:
oSort = {
"string-pre": function ( a ) {
// ...
},
"numeric": function ( a ) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果需要自定义类型的自定义排序功能,则可以通过向oSort对象添加其他键或属性来扩展oSort对象.
例如,要添加一个名为的新类型date-uk-pre,您可以使用:
$.fn.dataTableExt.oSort['date-uk-pre'] = function ( a ) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
也就是说,你扩展了oSort一个所谓的新特性date-uk-pre.jQuery $.extend()只不过是这个的捷径.而不是添加人工每个属性,为每一个新的类型,你传递一个新的对象,与所有的新类型(例如,date-uk-pre,datetime-uk-pre,和jQuery 合并它们与现有的oSort对象,与新的功能有效地延长了.你甚至可以结合两种$.extend()一个人:
$.extend($.fn.dataTableExt.oSort, {
"date-uk-pre": function (a) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
},
"datetime-uk-pre": function (a) {
from = a.split(' ');
var ukDatea = from[0].split('/');
var ukTimea = from[1].split(':');
return (ukDatea[2] + ukDatea[1] + ukDatea[0] + ukTimea[1] + ukTimea[0]) * 1;
},
"datetime-uk-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"datetime-uk-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4526 次 |
| 最近记录: |