我在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);
答案 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>
序列化默认情况下通过查看每个项目的ID来工作 格式化“setname_number”,它会发出像哈希一样的哈希值 “的setName [] =&数放大器;的setName [] =编号”
在jquery代码中添加了一个额外的.sortable(),以便按https://stackoverflow.com/a/1959893
中的说明对ul进行排序var result = $('#sortlist').sortable().sortable("serialize");
答案 2 :(得分:0)
首先,您应该初始化可排序的
$('#sortlist').sortable();
然后调用序列化。
var result = $('#sortlist').sortable("toArray");
alert(result);