Serialable的sortable方法什么都不返回

时间:2015-04-06 18:54:48

标签: jquery jquery-ui serialization jquery-ui-sortable

为什么在更改排序顺序后我的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>       

1 个答案:

答案 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()是一个更好的选择

希望这有帮助