あなたがやりたいことは、アイテムの順序付けられたリスト (1. アイテム 1、2. アイテム 2、3. アイテム 3) があり、1 つのアイテムが移動されたときにリストの番号を付け直すことだと思いますよね? したがって、2 を 3 より下に移動した場合、テキストは 1. 項目 1、2. 項目 3、3. 項目 2 のようになります。これが正しければ、コードは次のようになります。まず、HTML を次のようにする必要があります。
<ul id="yourSortableListID">
<li class="renumberMe"><span class="list_num"></span> Item 1</li>
<li class="renumberMe"><span class="list_num"></span> Item 2</li>
<li class="renumberMe"><span class="list_num"></span> Item 3</li>
</ul>
JavaScript は次のようになります。
function renumberListItems() {
i = 1;
$(".renumberMe").each( function() {
$(".list_num", this).text(i + ".");
i++;
});
}
// we don't want to add the sortable until the dom is ready
$(document).ready(function() {
renumberListItems();
$("#yourSortableListID").sortable({
stop: function(event, ui) {renumberListItems();}
});
});
renumberListItems() は、各 li 項目を調べ、その中の list_num 項目を見つけ、i
の値を使用してテキストを更新し、リストの番号が付け直されるようにします。これは、ユーザーがアイテムを移動してマウスを離すたびに、指定した関数を呼び出すsortables で提供されるイベント (このページstop
の [イベント] タブで詳細を参照) を使用して行います。