2

我有一个填充的无序列表,用户可以将一个 li 拖到一个未填充的列表中。

<ul id="sortable1" class="connectedSortable">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

<ul id="sortable2" class="connectedSortable">
    <li></li>
</ul>

我想要做的是让未填充的列表成为一个有序列表,如果用户对有序列表中的元素进行排序,它会显示添加元素的位置并更新位置。我正在考虑使用这样的东西:

<ul id="sortable1" class="connectedSortable">
    <li><span> </span>Item 1</li>
    <li><span> </span>Item 2</li>
    <li><span> </span>Item 3</li>
    <li><span> </span>Item 4</li>
    <li><span> </span>Item 5</li>
</ul>

然后在用户将元素移动到新列表时用元素的数字位置填充空的 span 标签,但我不知道这是否是最有效的方法。

4

2 回答 2

0

对于这种情况,您可以使用HTML-5 data attributes ..

<ul id="sortable1" class="connectedSortable">
    <li data-position="3">Item 1</li>
    <li data-position="5">Item 2</li>
    <li data-position="1">Item 3</li>
    <li data-position="4">Item 4</li>
    <li data-position="2">Item 5</li>
</ul>
于 2012-12-01T00:55:45.773 回答
0

您可以使用以下text方法:

$('#sortable1 span').text(function(i){
   return ++i
})

或者创建一个 jQuery 方法并在更新事件中调用它:

$.fn.populate = function(){
    this.each(function(i){
       this.innerHTML = ++i;
    })
}

$("#sortable1").sortable({
    update: function( event, ui ) {
       $('#sortable1 span').populate();
    }
});

http://jsfiddle.net/6ZGqM/

于 2012-12-01T00:57:23.913 回答