为什么在更改排序顺序后我的data
对象为空?在UI中,订单已更改,但现在我想根据id
元素的li
属性捕获元素的新顺序。
$(function () {
$("#sortable").sortable({
placeholder: "picplaceholder",
update: function (event, ui) {
var data = $(this).sortable('serialize');
console.log(data);
}
});
$("#sortable").disableSelection();
});
<ul id="sortable">
<li id="1">
<div class="editphoto">
1
<i class="fa fa-arrows fa-lg pointer"></i>
</div>
</li>
<li id="2">
<div class="editphoto">
2
<i class="fa fa-arrows fa-lg pointer"></i>
</div>
</li>
<li id="3">
<div class="editphoto">
3
<i class="fa fa-arrows fa-lg pointer"></i>
</div>
</li>
</ul>
答案 0 :(得分:1)
序列化工作的 document says id
应具有特定格式。
注意:如果serialize返回一个空字符串,请确保id 属性包括下划线。它们必须采用以下形式: “set_number”例如,一个id属性为“foo_1”的3元素列表, “foo_5”,“foo_2”将序列化为“foo [] = 1&amp; foo [] = 5&amp; foo [] = 2”。您可以 使用下划线,等号或连字符分隔集合和 数。例如,“foo = 1”,“foo-1”和“foo_1”都序列化为 “富[] = 1”。
在您的情况下,Id
可能应该像id_1
,依此类推。 (我只是在猜测,因为问题没有说明序列化的预期输出是什么。)
这是demo
如果预期输出是一个数组(如[[1“,”2“,”3“]),那么.toArray()
是一个更好的选择
希望这有帮助