我有一个填充的无序列表,用户可以将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标记,但我不知道这是否是最有效的方法。
答案 0 :(得分: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>
答案 1 :(得分:0)
您可以使用text
方法:
$('#sortable1 span').text(function(i){
return ++i
})
或者创建一个jQuery方法并在update事件上调用它:
$.fn.populate = function(){
this.each(function(i){
this.innerHTML = ++i;
})
}
$("#sortable1").sortable({
update: function( event, ui ) {
$('#sortable1 span').populate();
}
});