可排序('toArray')或可排序('序列化')

Bra*_*cil 4 jquery jquery-ui

我在Stackoverflow上读了几个问题,建议使用serialize()和toArray with sortable()来准备插入数据库的数据.然而,当我试图通过它们可排序("指定者")或排序("序列化"),它打破即列表中的代码不再排序.这是一个小提琴

http://jsfiddle.net/mjmitche/sTzCS/16/

有谁知道我做错了什么?

<ul id="sortlist">
        <li id="Vancouver">Vancouver</li>
        <li id="Toronto">Toronto</li>
        <li id="Montreal">Montreal</li>
        <li id="Ottawa">Ottawa</li>
        <li id="Calgary">Calgary</li>
        <li id="Edmonton">Edmonton</li>
        <li id="Winnipeg">Winnipeg</li>
     </ul>?
Run Code Online (Sandbox Code Playgroud)

JavaScript的

// also tried $('#sortlist').sortable('serialize);

var result = $('#sortlist').sortable("toArray");

alert(result); 
Run Code Online (Sandbox Code Playgroud)

Bra*_*cil 5

这是怎么做的

$("#sortlist").sortable({stop: function(event, ui) {
    result = $("#sortlist").sortable("toArray");
     alert(result.length);

}});
Run Code Online (Sandbox Code Playgroud)


use*_*737 5

将 li 的 id 从“Toronto”更改为“city_Toronto”等。

<ul id="sortlist">
        <li id="city_Vancouver">Vancouver</li>
        <li id="city_Toronto">Toronto</li>
        <li id="city_Montreal">Montreal</li>
        <li id="city_Ottawa">Ottawa</li>
        <li id="city_Calgary">Calgary</li>
        <li id="city_Edmonton">Edmonton</li>
        <li id="city_Winnipeg">Winnipeg</li>
     </ul>
Run Code Online (Sandbox Code Playgroud)

jqueryui 文档

默认情况下,序列化通过以“setname_number”格式查看每个项目的 id 来工作,它会吐出像“setname[]=number&setname[]=number”这样的哈希值

在 jquery 代码中添加了一个额外的 .sortable() 以使 ul 可排序,如/sf/answers/137192541/ 中所述

var result = $('#sortlist').sortable().sortable("serialize");
Run Code Online (Sandbox Code Playgroud)

(分叉到http://jsfiddle.net/s8eJU/