期望的效果:使用 jQuery.sortable 将类不排序从包含中排除的行 (tr)。
当前代码:(包含:"父"/包含:".可排序的身体")
<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>
如何从包含中排除正文末尾 (!) 的"不排序"行?以下方法不起作用:
containment: '.sortable-body tr:not(.menu-rij-toevoegen)'
您可以使用
'items'
参数标识哪些项目可排序 - 该值应指定为 CSS 选择器。
因此,要提供负条件(从组中排除元素),请使用伪类:not()
,如下所示:
$('.sortable-body').sortable({ items: 'tr:not(.do-not-sort)' });
它在这里工作,使用您的精确标记:http://jsfiddle.net/MUEuW/2/
更新:从包含中排除最后一行的最佳方法可能是简单地将其包装在单独的<tbody>
标签中。
多个<tbody>
是合法的。参见:我们可以在同一个<表>中有多个
在这里更新小提琴:http://jsfiddle.net/MUEuW/3/
。还是您无法控制 HTML?
看看我之前的帖子。https://stackoverflow.com/a/9535584/665387
您可以指定不可排序的列,例如
$('#tableRoster').tablesorter({
headers: {
0: { sorter: false },
4: { sorter: false }
}
});