5

我在 Stackoverflow 上阅读了一些问题,这些问题建议使用 serialize() 和 toArray 和 sortable() 来准备要插入数据库的数据。但是,当我尝试将它们传递给 sortable('toArray') 或 sortable('serialize') 时,它会破坏代码,即列表不再可排序。这是一个小提琴

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>​

JavaScript

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

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

alert(result); 
4

3 回答 3

6

这是怎么做的

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

}});
于 2012-09-16T00:17:13.850 回答
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>

jqueryui 文档

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

在 jquery 代码中添加了一个额外的 .sortable() 以使 ul 可排序,如https://stackoverflow.com/a/1959893中所述

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

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

于 2013-09-09T18:29:41.867 回答
0

首先,你应该初始化可排序的,

$('#sortlist').sortable();

然后调用序列化。

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

提琴手

于 2017-12-18T09:06:54.843 回答