我有一张grouped-by
张不同的'categories'
表。该表将使用jQuery Sortable
进行排序。但是,我想将可排序的包含限制在每组'group-by'行中。我还想阻止SINGLE行排序。
因此...
样本表:
<table class="table-o-stuff">
<thead>
<tr><td>Category</td><td>Order</td><td>Value</td></tr>
</thead>
<tbody>
<tr><td>Oranges</td><td>1</td><td>Are Good</td></tr>
<tr><td>Oranges</td><td>1</td><td>Are Okay</td></tr>
<tr><td>Oranges</td><td>1</td><td>Are Bad</td></tr>
<tr><td colspan="3"> </td></tr>
<tr><td>Apples</td><td>1</td><td>Are Good</td></tr>
<tr><td colspan="3"> </td></tr>
<tr><td>Peaches</td><td>1</td><td>Are Okay</td></tr>
<tr><td>Peaches</td><td>1</td><td>Are Bad</td></tr>
<tr><td>Peaches</td><td>1</td><td>Are Good</td></tr>
</tbody>
</table>
这绝对失败:
我猜测这个失败的原因是因为它在EACH TableRow上创建了一个对象。
var $rows = $("td").filter(function () {
return $(this).text().trim() === "Oranges";
}).closest("tr");
$rows.sortable({
helper: function (e, tr) {},
stop: function(event, ui) {}
});
答案 0 :(得分:4)
您可以将自己的版块分组到不同的tbody
,并在tbody
上调用可排序对象。像这样:
<table class="table-o-stuff">
<thead>
<tr><td>Category</td><td>Order</td><td>Value</td></tr>
</thead>
<tbody >
<tr><td>Oranges</td><td>1</td><td>Are Good</td></tr>
<tr><td>Oranges</td><td>1</td><td>Are Okay</td></tr>
<tr><td>Oranges</td><td>1</td><td>Are Bad</td></tr>
</tbody>
<tr><td colspan="3"> </td></tr>
<tr><td>Apples</td><td>1</td><td>Are Good</td></tr>
<tr><td colspan="3"> </td></tr>
<tbody >
<tr><td>Peaches</td><td>1</td><td>Are Okay</td></tr>
<tr><td>Peaches</td><td>1</td><td>Are Bad</td></tr>
<tr><td>Peaches</td><td>1</td><td>Are Good</td></tr>
</tbody>
</table>
$('tbody').sortable({
containment: 'parent',
items: 'tr'
})