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

时间:2012-09-16 00:14:18

标签: jquery jquery-ui

我在Stackoverflow上读了几个问题,建议使用serialize()和toArray with 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); 

3 个答案:

答案 0 :(得分:5)

这是怎么做的

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

}});

答案 1 :(得分:3)

将李的ids从“多伦多”改为“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 docs

  

序列化默认情况下通过查看每个项目的ID来工作   格式化“setname_number”,它会发出像哈希一样的哈希值   “的setName [] =&数放大器;的setName [] =编号”

在jquery代码中添加了一个额外的.sortable(),以便按https://stackoverflow.com/a/1959893

中的说明对ul进行排序
var result = $('#sortlist').sortable().sortable("serialize");

(分为http://jsfiddle.net/s8eJU/

答案 2 :(得分:0)

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

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

然后调用序列化。

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

Jsfiddle