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から1番目に移動した場合はどうなりますか?

次のリンクでデモを見ることができます: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 に答える