sortable returns nothing 的序列化方法

Serialize method of sortable returns nothing

为什么我更改排序顺序后我的 data 对象是空的?在 UI 中,顺序已更改,但现在我想根据 li 元素的 id 属性捕获元素的新顺序。

    $(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>       

document says,为了使序列化工作,id 应该是某种格式。

Note: If serialize returns an empty string, make sure the id attributes include an underscore. They must be in the form: "set_number" For example, a 3 element list with id attributes "foo_1", "foo_5", "foo_2" will serialize to "foo[]=1&foo[]=5&foo[]=2". You can use an underscore, equal sign or hyphen to separate the set and number. For example "foo=1", "foo-1", and "foo_1" all serialize to "foo[]=1".

在您的情况下,Id 可能应该是 id_1 等等。 (我只是猜测,因为问题没有说明序列化后预期的输出)。

这是一个demo

如果预期输出是一个数组(像这样 ["1", "2", "3"] )那么 .toArray() 是更好的选择

希望对您有所帮助