0

jquerytablesorterを使用してテーブルを並べ替えています。質問をグーグルで検索しようとしましたが、探しているものが見つかりませんでした。

コンテンツが動的に変化するテーブルがあるので、アイテムの並べ替え方法を変更したいと思います。

テーブルにテキストが入力されているケースが1つあり、デフォルトでソーターにすることができます.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を再初期化しているため、機能していませんか?再バインドする前に、テーブルソーターのバインドを解除してみてください。

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

テーブルからjQueryテーブルソーターを削除するをご覧ください。

于 2012-12-18T16:03:41.260 に答える
0

私はあなたがこれを探していると思います-あなたはthクラスを好きにするために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 に答える