我在li
元素中有5个项目,id
。我想对除第3个之外的所有li
元素进行排序。但是在提交时,我希望所有li
元素id
以任何顺序排除,不包括第3个元素,它们将保持在同一位置。
HTML:
<ul class="sortable">
<li id="1">Item 1</li>
<li id="2">Item 2</li>
<li id="3" class="unsortable">Item 3</li>
<li id="4">Item 4</li>
<li id="5">Item 5</li>
</ul>
jQuery的:
$(".sortable").sortable({
items: "li:not(.unsortable)",
stop: function(ev, ui) {
order = $('.ui-sortable').sortable('toArray').toString();
console.log(order)
}
});
$(".sortable").disableSelection();
在控制台中,除了不可排序的类之外,所有值都会出现。
1,2,4,5
我希望结果包含“3”,例如:1,2,3,4,5
。我怎样才能做到这一点?
感谢您的帮助。
答案 0 :(得分:0)
您可以使用refreshPositions
方法确保所有项目都包含在您打印到控制台的结果中。
对refreshPositions
的调用会返回父ul
,然后您可以查询children()
以确定订单。孩子们将包括所有li
元素,无论他们的“可归类性”如何。
$(".sortable").sortable({
items: "li:not(.unsortable)",
stop: function(ev, ui) {
//Use map to obtain the ids
var order = $.map($('.sortable').sortable('refreshPositions').children(), function(item) {
return item.id;
}).toString();
console.log(order)
}
});
$(".sortable").disableSelection();
单击下面的快速演示:
<强> Fiddle Demo 强>
refreshPositions
info