我有一个HTML表格,我正在使用jQuery UI sortable来对其进行排序,并且已经可以正常地拖放行以更改表格中的顺序。但是我需要阻止某些行进行排序。这些行具有class = 'nosort'且可以被选择。它们总是在底部。我正在尝试使用sortable的cancel选项来实现此目的,但没有成功。
HTML代码:
<table id='sort'>
<thead>
<tr>
<td>Col 1</td>
<td>Col 2</td>
</tr>
</thead>
<tbody>
<tr>
<td class='index'>Original Row 1</td>
<td>Some Stuff</td>
</tr>
<tr>
<td class='index'>Original Row 2</td>
<td>Some Stuff</td>
</tr>
<tr>
<td class='index'>Original Row 3</td>
<td>Some Stuff</td>
</tr>
<tr class='nosort'>
<td class='index'>Original Row 4</td>
<td>Some Stuff</td>
</tr>
<tr class='nosort'>
<td class='index'>Original Row 5</td>
<td>Some Stuff</td>
</tr>
</tbody>
</table>
代码:
$("#sort tbody").sortable({
helper: fixHelperModified,
stop: updateIndex
}).disableSelection()
var fixHelperModified = function (e, tr) {
var $originals = tr.children();
var $helper = tr.clone();
$helper.children().each(function (index) {
$(this).width($originals.eq(index).width())
});
return $helper;
},
updateIndex = function (e, ui) {
$("#dvQMsg").hide();
$("#dvQErr").hide();
$("#dvSaveOrder").show();
$('td.index', ui.item.parent()).each(function (i) {
$(this).html(i + 1);
});
$(".nosort").sortable("cancel");
}
;