1

是否可以仅使用 jQuery tablesorter 隐藏某些列的过滤器?前三列不需要过滤器(它们只会使表格更长)。

<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

我通过隐藏前四个输入字段来解决它。

// 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

如果您只想隐藏它们,那么您可以执行以下操作:

// 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 回答
0

看起来您正在使用我的tablesorter分支和过滤器小部件。因此,为特定列禁用过滤器所需要做的就是将类名添加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 回答