我尝试在我们的项目上实现jquery可排序,如果排序完成,应该对项目重新索引,请参阅下面的代码:
$("#data_field_table tbody").sortable({
stop:updateRow
}).disableSelection();
var updateRow = function(e,ui){
$('td.index',ui.item.parent()).each(function(i){
var newIndex = i +1;
$(this).html(newIndex);
});
重新索引项目是可以的,但是在处理之后,排序行上的隐藏输入被删除,我不确定这是否是由jquery的可排序引起的,请参阅下面的代码:
<td class="index">${data.groupOrder}<input class="hiddenValue" type="hidden" name="fgDataFields[${info.index}].groupOrder" id="go${info.index}" value="${data.groupOrder}"/>
</td>
最佳答案
您的 updateRow 函数末尾缺少 }
。
尝试:
var updateRow = function(e,ui){
$('td.index',ui.item.parent()).each(function(i){
var newIndex = i +1;
$(this).html(newIndex);
})};
编辑:
重新阅读您的问题并意识到这不是问题所在。我现在知道重新索引正在工作,但隐藏的输入已被删除。
要解决这个问题,您必须保存输入并在重新索引后将 ID 重新添加到项目中。
类似这样的事情:
var updateRow = function(e,ui){
$('td.index',ui.item.parent()).each(function(i){
var newIndex = i +1;
var input = $(this).find('input');
$(this).html(newIndex);
$(this).append(input)
})};
关于javascript - jquery sortable 删除其他元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100955/