1

現在、このコードでソートされているテーブルがあります:

$(document).ready(function () {
    $(".statisticstable").tablesorter({
        sortList: [
            [5, 0]
        ],
        textExtraction: function (node) {
            if ($(node).hasClass('data')) {
                return $(node).attr('value');
            } else {
                return $(node).html();
            }
        }
    });
});

これは現在、5番目の列でテーブルをソートしますが、「お気に入り」の行を強制的に一番上にプッシュし、その後にソートされたリストの残りを強制する「お気に入りの行」機能を追加しようとしています。

とにかくこれを行うことはありますか?

4

1 に答える 1

2

あなたが望むのは、この StackOverflowの質問に対する回答と同じだと思います...基本的に、ユーザーは行内のボックスをチェックすると、別の tbody に移動されます。

<table id="fav" class="tablesorter">
  <thead>
    <!-- make checkbox column unsortable "sorter-false" -->
    <th class="sorter-false"></th>
    <!-- etc -->
  </thead>

  <!-- add an "info" only (non-sorting) tbody -->
  <tbody class="tablesorter-infoOnly"></tbody>

  <tbody class="all">
    <tr>
      <td><input type="checkbox" /></td>
      <!-- etc -->
    </tr>
    <!-- etc -->
  </tbody>
</table>

「お気に入り」の tbody 内の行を並べ替える場合は、tablesorter-infoOnlyクラスを削除します。

完全を期すためのコードとデモは次のとおりです

$(function() {

  var $table = $("#fav");
  $table.tablesorter({ sortList: [[0,0], [1,0]] });

  $table.on('click','input:checkbox', function() {
    var $this = $(this);
    if ($this.is(':checked')) {
      $this.closest('tr').prependTo("#fav tbody.tablesorter-infoOnly");
    } else {
      $this.closest('tr').appendTo("#fav tbody.all");
    }
    $this.trigger('update');
  });
});
于 2013-11-08T00:04:38.997 に答える