tablesorter の headers オプションで一部の列の並べ替えを無効に

jQuery の tablesorter プラグインの「blue」テーマを使った、列の値を基準に、項目を並べ替えられる表(テーブル)において、一部の列の並べ替えはできないようにする方法。一部の列の並べ替えを無効にするには、「headers」オプションを使い、特定の列に対して、「sorter: false」を指定する。

実装例(サンプル)

商品名 id 値段 評価 デザイン
A商品 2256 8800 54 73
B商品 2011 5900 71 52
C商品 7025 15000 97 100
D商品 1023 8800 62 63
E商品 5123 8800 62 73

実装例(サンプル)の動作について

  • 「商品名」と「ID」の列の値を基準にした並べ替えはできないようになっている。
  • 表の列の見出し(「値段」「評価」「デザイン」)をクリックすると、その列の値を基準に、商品を並べ替える。昇順の列は降順に並べ替え、降順の列は昇順に並べ替え、昇順でも降順でもない列は昇順に並べ替える。
  • 「値段」「評価」「デザイン」の列の見出しにある「表の列の見出し-並べ替え-昇順降順」が、昇順で並べたときは「表の列の見出し-並べ替え-昇順」に変わり、降順で並べたときは「表の列の見出し-並べ替え-降順」に変わる。
  • 「値段」で並べ替えた後、キーボードの「Shift」キーを押したまま、「評価」をクリックすると、「値段」が同じ商品だけ、さらに「評価」を基準に並べ替える。この例の場合、8800円の商品3つを、さらに「評価」に基づいて並べ替える。
  • 並べ替えの基準にした列の見出しの背景色は、 この色 に変わる。複数の列を基準にしたときは、複数の見出しの背景色が、 この色 に変わる。

実装例(サンプル)のソースコード

読み込み

パスは、それぞれ、アップロードした場所を指定する。

<link rel="stylesheet" type="text/css" href="tablesorter/themes/blue/style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>

JavaScript

<script>
<!--
jQuery( function() {
    jQuery( '#jquery-tablesorter-table' ) . tablesorter( {
        headers: {
            0: { sorter: false },
            1: { sorter: false }
        }
    } );
} );
// -->
</script>

1つ目と2つ目の列による並べ替えを無効に設定。

CSS

<style>
<!--
#jquery-tablesorter-table {
    width: 500px !important;
}
#jquery-tablesorter-table th {
    color: #333333 !important;
    padding: 0.5em 1em !important;
}
#jquery-tablesorter-table td {
    color: #333333 !important;
    padding: 0.5em 1em 0.5em 2em !important;
}
#jquery-tablesorter-table th, #jquery-tablesorter-table td {
    border: 1px solid #d1d1d1;
}
-->
</style>

HTML

<table id="jquery-tablesorter-table" class="tablesorter">
<thead>
<tr>
    <th>商品名</th>
    <th>id</th>
    <th>値段</th>
    <th>評価</th>
    <th>デザイン</th>
</tr>
</thead>
<tbody>
<tr>
    <td>A商品</td>
    <td>2256</td>
    <td>8800</td>
    <td>54</td>
    <td>73</td>
</tr>
<tr>
    <td>B商品</td>
    <td>2011</td>
    <td>5900</td>
    <td>71</td>
    <td>52</td>
</tr>
<tr>
    <td>C商品</td>
    <td>7025</td>
    <td>15000</td>
    <td>97</td>
    <td>100</td>
</tr>
<tr>
    <td>D商品</td>
    <td>1023</td>
    <td>8800</td>
    <td>62</td>
    <td>63</td>
</tr>
<tr>
    <td>E商品</td>
    <td>5123</td>
    <td>8800</td>
    <td>62</td>
    <td>73</td>
</tr>
</tbody>
</table>

スポンサード リンク

カテゴリー: JavaScript, jQuery, tablesorter, プラグイン, パーマリンク