1

期望的效果:使用 jQuery.sortable 从包含中排除具有类 do-not-sort 的行 (tr)。

当前代码:(包含:'父'/包含:'.sortable-body')

<table>
    <thead>
        <tr>
            <th>Field 1</th>
            <th>Field 2</th>
        </tr>
    </thead>
    <tbody class="sortable-body">
        <tr>
            <td>Sortable Field 1</td>
            <td>Sortable Field 2</td>
        </tr>
        <tr>
            <td>Sortable Field 1</td>
            <td>Sortable Field 2</td>
        </tr>
        <tr class="do-not-sort">
            <td colspan="2"><a href="#">Add Row</a></td>
        </tr>
    </tbody>
</table>

如何从容器中排除 tbody 末尾(!)的“不排序”行?以下没有奏效:

遏制:'.sortable-body tr:not(.menu-rij-toevoegen)'

4

2 回答 2

1

您可以使用参数识别哪些项目可排序的'items'——该值应指定为 CSS 选择器。

因此,要提供否定标准(从组中排除元素),请使用:not()伪类,如下所示:

$('.sortable-body').sortable({ items: 'tr:not(.do-not-sort)' })​;​

它在这里工作,你的精确标记:http: //jsfiddle.net/MUEuW/2/

更新:可能从包含中排除最后一行的最佳方法是将其简单地包装在单独的<tbody>标签中。

多个<tbody>s 是合法的。请参阅:我们可以在同一个 <table> 中有多个 <tbody> 吗?

在这里更新小提琴:http: //jsfiddle.net/MUEuW/3/

...或者您无法控制 HTML?

于 2012-08-10T14:55:04.827 回答
-1

看看我之前的帖子。 https://stackoverflow.com/a/9535584/665387

您可以指定不可排序的列,例如

$('#tableRoster').tablesorter({
        headers: {
            0: { sorter: false },
            4: { sorter: false }
        }
    });
于 2012-08-10T14:32:04.207 回答