1

jQuery tablesorterでのみ特定の列からフィルターを非表示にすることは可能ですか? 最初の 3 つの列にはフィルターは必要ありません (表が長くなるだけです)。

<table id="userTable"  class="table-sorter table table-striped table-bordered">
    <thead>
        <tr>
            <th>
                <input type="checkbox" /></th>
            <th></th>
            <th></th>
            <th></th>
            <th>Login
            </th>
            <th>Email
            </th>
            <th>Company
            </th>
            <th>LastName
            </th>
            <th>FirstName
            </th>
            <th>ZipCode
            </th>
            <th>City
            </th>
            <th class="filter-select" data-placeholder="Select">Country
            </th>
        </tr>
    </thead>

どうも

4

4 に答える 4

3

jQuery にネイティブの tablesorter プラグインがあることを覚えていないので、これを使用していると思います: http://tablesorter.com/docs/

構成オプションを見下ろした場合。「ヘッダー」を使用して、オプションを渡すことでヘッダーの並べ替えを手動で無効にできることがわかります。{ 0: { sorter: false}, 1: {sorter: false} }これにより、最初の 2 列の並べ替えが無効になります。

そのドキュメントを読み直すだけで、取得できるはずです。

于 2013-01-15T13:36:03.807 に答える
1

最初の 4 つの入力フィールドを非表示にすることで解決しました。

// remove filters from first 4 columns
        for (var i = 0; i < 4; i++) {
            $('input[data-column='+i+']').hide();
        }

これが正しい方法かどうかはわかりませんが、うまくいきます。グレイト・ダニー

于 2013-01-16T08:53:57.897 に答える
0

フィルターウィジェットでテーブルソーターのフォークを使用しているようです。したがって、特定の列のフィルターを無効にするために必要なのは、クラス名filter-falseth:に追加することだけです。

<table id="userTable"  class="table-sorter table table-striped table-bordered">
    <thead>
        <tr>
            <th class="filter-false">
                <input type="checkbox" /></th>
            <th class="filter-false"></th>
            <th class="filter-false"></th>
            <th class="filter-false"></th>
            <th>Login</th>

それでも、フィルターはフィルター行に追加されますが、入力は無効になります。次に、このcssを追加するだけです。

/* hide disabled filter inputs */
.tablesorter-filter.disabled {
  display: none;
}

これが私が上で説明したもののデモです。

于 2013-01-16T14:05:22.843 に答える
0

それらを非表示にするだけの場合は、次のことができます。

// Index starts at 0 so you want to hide elem 0, 1, 2 and 3
$('input:lt(4)').hide();

これにより、最初の入力が非表示になります。例: http://jsfiddle.net/VWkJZ/

于 2013-01-16T09:12:07.523 に答える