【问题标题】:Serialize method of sortable returns nothing可排序的序列化方法不返回任何内容
【发布时间】:2015-06-11 05:26:37
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    document says 序列化工作的id 应该是特定格式。

    注意:如果serialize返回一个空字符串,请确保id 属性包括下划线。它们必须采用以下形式: "set_number" 例如,一个 id 属性为 "foo_1" 的 3 元素列表, "foo_5", "foo_2" 将序列化为 "foo[]=1&foo[]=5&foo[]=2"。你可以 使用下划线、等号或连字符分隔集合和 数字。例如“foo=1”、“foo-1”和“foo_1”都序列化为 “foo[]=1”。

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

    这是demo

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2012-09-07
      • 1970-01-01
      • 2019-10-23
      • 2020-01-26
      • 2018-10-21
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多