0

我有一个编号的列表。
在对项目进行排序时,我需要更新一个与列表中的位置相对应的数字。

这是我的代码:

$(".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);
    }
});

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

你可以在这个链接看到演示:http: //jsfiddle.net/UAcC7/106/

4

1 回答 1

1

像这样的东西怎么样:

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

您每次都会更新所有项目,即使是理论上不需要的项目。但是,我认为无论如何它会更快,因为您不需要遍历 DOM 并进行索引计算等。

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

于 2012-10-03T13:34:55.213 回答