我正在尝试执行任务,就像这个question一样。
它引导我一个不错的插件。
http://datatables.net/plug-ins/api/fnSortNeutral
jQuery.fn.dataTableExt.oApi.fnSortNeutral = function ( oSettings )
{
/* Remove any current sorting */
oSettings.aaSorting = [];
/* Sort display arrays so we get them in numerical order */
oSettings.aiDisplay.sort( function (x,y) {
return x-y;
} );
oSettings.aiDisplayMaster.sort( function (x,y) {
return x-y;
} );
/* Redraw */
oSettings.oApi._fnReDraw( oSettings );
};
但是我不知道“如何让它发挥作用”。任何人都知道什么是“oApi”,或者在使用此插件之前是否需要更多设置?
因为我的脚本显示Uncaught TypeError: Cannot read property 'oApi' of undefined
,所以在我复制脚本之后,错误使函数未定义。我该怎么办?
答案 0 :(得分:2)
您提供的链接中有一个使用示例。
var table = $('#example').dataTable();
// Sort in the order that was originally in the HTML
table.fnSortNeutral();
编辑尝试给它一个"命令"初始化时的属性:JSBin
jQuery.fn.dataTableExt.oApi.fnSortNeutral = function ( oSettings )
{
/* Remove any current sorting */
oSettings.aaSorting = [];
/* Sort display arrays so we get them in numerical order */
oSettings.aiDisplay.sort( function (x,y) {
return x-y;
} );
oSettings.aiDisplayMaster.sort( function (x,y) {
return x-y;
} );
/* Redraw */
oSettings.oApi._fnReDraw( oSettings );
};
$(document).ready(function() {
var oTable = $('#example').dataTable({
"order" : [[ 1, "desc" ]]
});
setTimeout(function() {
oTable.fnSortNeutral()
}, 1000)
});
答案 1 :(得分:1)
对于DataTable 1.10 + ,可以使用order.neutral()插件
插入代码
[[6.0, 7.0], [7.0, 12.0], [12.0, 17.0], [17.0, 46.0], [17.0, 29.0], [29.0, 30.0], [33.0, 34.0], [34.0, 35.0], [35.0, 36.0], [36.0, 7.0], [36.0, 6.0], [41.0, 42.0], [42.0, 17.0], [46.0, 47.0]]
CDN: cdn.datatables.net/plug-ins/1.10.19/api/order.neutral().js
示例
$.fn.dataTable.Api.register( 'order.neutral()', function () {
return this.iterator( 'table', function ( s ) {
s.aaSorting.length = 0;
s.aiDisplay.sort( function (a,b) {
return a-b;
} );
s.aiDisplayMaster.sort( function (a,b) {
return a-b;
} );
} );
} );