2012-10-03 38 views
0

我有一个编号列表。
排序项目时,我需要更新一个数字,对应于列表中的位置。使用jquery.ui.sortable更新列表

这里是我的代码:

$(".sortable").sortable({ 
    stop: function(event, ui) { 
     var prevPos = ui.item.find('.position').text(); 
     var newPos = ui.item.index() + 1 
     ui.item.find('.position').text(newPos); 
     console.log(prevPos); 
    } 
}); 

我的问题是我应该如何更新其他项目?
例如,当我将Robert从3dt移动到1st时?

您可以在此链接查看演示:http://jsfiddle.net/UAcC7/106/

回答

1

如何这样的事情,而不是:

$(".sortable").sortable({ 
    stop: function(event, ui) { 
     $('.sortable li').each(function(i) { 
      $(this).find('span').text(++i); 
     }); 
    } 
}); 

您将更新每一次的所有项目,即使是理论上不需要的那些它。但是,我认为它会更快,因为您不需要遍历DOM并执行索引计算等。

http://jsfiddle.net/UAcC7/107/