我正在尝试执行一项任务,就像这个 question 一样.
- 我有一个可用的 jquery 数据表
- 我想要一个函数来重置排序,这是在用户选择任何列之前,与从 HTML 读入相同。
它引导我找到了一个不错的插件。
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
,并且该错误使函数未定义。我该怎么办?
最佳答案
对于DataTable1.10+可以使用order.neutral()插件
插件代码
$.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;
} );
} );
} );
CDN: cdn.datatables.net/plug-ins/1.10.19/api/order.neutral().js
示例
// Return table to the loaded data order
table.order.neutral().draw();
关于jquery dataTable重置排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27008837/