0

我正在使用 jquery tablesorter 对我的表进行排序。我试图用谷歌搜索我的问题,但没有找到我要找的东西。

我有一个内容动态变化的表格,所以我想改变项目的排序方式。

一种情况下,我的表格填充了文本,默认情况下可以排序,.tablesorter()而另一种情况是数字在表格中,所以我需要像这样调用 tablesorter:

$('table').tablesorter({
        headers : { 
                0 : {sorter:'digit'},
                1 : {sorter:'digit'},
                2 : {sorter:'digit'},
                3 : {sorter:'digit'}
        }
    });

我有一种方法可以在表格内容中的数字/文本之间重新加载表格切换,如何更改表格的排序方式。

在示例中(伪代码):

function reloadTableData
if table contains numbers user this tablesorter (I have a way to know if table contains numbers) 
$('table').tablesorter({
            headers : { 
                    0 : {sorter:'digit'},
                    1 : {sorter:'digit'},
                    2 : {sorter:'digit'},
                    3 : {sorter:'digit'}
            }
        });
if table contains text use ordinary table sorter 
$('table').tablesorter();
end

我可以使用文本/数字重新加载表格数据 n 次。

我尝试了以下方法:

function initTablesorter(n) {

    switch(n)
    {
    case "number":
      digitTableSorter();
      break;
    case "text":
     defaultTableSorter();
      break;
    default:

    }
}

function digitTableSorter(){
$('table').tablesorter({
        headers : { 
                0 : {sorter:'digit'},
                1 : {sorter:'digit'},
                2 : {sorter:'digit'},
                3 : {sorter:'digit'}
        }
    });
}

function defaultTableSorter(){
$('table').tablesorter();
}

不用说它不起作用,我希望以前有人做过这样的事情,我现在被困了一段时间。

4

2 回答 2

1

那么它不起作用是因为您要在桌子上重新初始化 tablesorter 吗?您可以在重新绑定之前尝试取消绑定 tablesorter。

$('table')
 .unbind('appendCache applyWidgetId applyWidgets sorton update updateCell')
 .removeClass('tablesorter')
 .find('thead th')
 .unbind('click mousedown')
 .removeClass('header headerSortDown headerSortUp');

看看Remove jQuery tablesorter from table

于 2012-12-18T16:03:41.260 回答
0

我认为您正在寻找这个-您将需要MetatData 插件来获得喜欢的类"{sorter: 'digit'}"

http://tablesorter.com/docs/example-trigger-sort.html

 $("#trigger-link").click(function() { 
    // set sorting column and direction, this will sort on the first and third column the column index starts at zero 
    var sorting = [[0,0],[2,0]]; 
    // sort on the first column 
    $("table").trigger("sorton",[sorting]); 
    // return false to stop default link action 
    return false; 
}); 
于 2012-12-18T13:42:33.377 回答