我正在尝试使用select元素对我的表中的某些列进行排序。在列的左侧,我有一个隐藏在初始化的列。
我正在使用DataTables.net的dom-select排序插件:
$.fn.dataTableExt.afnSortData['dom-select'] = function ( oSettings, iColumn )
{
console.log(iColumn);
var aData = [];
$( 'td:eq('+iColumn+') select', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( $(this).val() );
} );
return aData;
};
当对一列进行排序时,列的索引在左侧有隐藏列而非左侧隐藏列时是相同的(iColumn在afnSortData之上)。但是,当隐藏左侧的列时,排序将向右一步应用于列。如果它是unhidden排序工作应该。
当我左侧有一个隐藏列时,如何确保排序应用于我点击的同一列?
答案 0 :(得分:1)
快速而肮脏的方法是将iColumn值设置为1。
iColumn = iColumn - 1;
<强>更新强> 如DataTables forum:
所述,这条路线更为清晰iColumn = oSettings.oApi._fnColumnIndexToVisible( oSettings, iColumn );