Jquery 可排序列表不会序列化,为啥?
Posted
技术标签:
【中文标题】Jquery 可排序列表不会序列化,为啥?【英文标题】:Jquery sortable list won't serialize, why?Jquery 可排序列表不会序列化,为什么? 【发布时间】:2010-11-01 04:38:51 【问题描述】:我正在 Zend Framework 应用程序中使用 jquery 实现可排序的图像列表。 我只是无法让 .sortable('serialize') 方法返回一个空字符串。
当我尝试在我的应用程序之外使用一些简单的示例时,它可以工作。
下面的 sn-p 是否包含在各种其他和其他标签中是否重要。我认为不应该。无序列表应该只能通过id找到吧?
html:
<ul id="mylist">
<li id="1">
<div>
<img src="image_1.jpg" />
<p class="value_item">some text</p>
</div>
</li>
<li id="2">
<div>
<img src="image_2.jpg" />
<p class="value_item">some text</p>
</div>
</li>
</ul>
$(document).ready(function()
$('#mylist').sortable(
update: function()
var order = $('#mylist').sortable('serialize');
alert(order);
);
);
【问题讨论】:
【参考方案1】:http://api.jqueryui.com/sortable/#method-serialize
如果 serialize 返回一个空字符串,确保 id 属性包含下划线。它们必须采用以下形式:“set_number” 例如,具有 id 属性 foo_1、foo_5、foo_2 的 3 元素列表将序列化为 foo[]=1&foo[]=5&foo[]=2。您可以使用下划线、等号或连字符来分隔集合和数字。例如 foo=1 或 foo-1 或 foo_1 都序列化为 foo[]=1。
【讨论】:
是的,这也解决了我的问题。这意味着 *** 中所有这些 jquery 可排序表解决方案的示例都是错误的。 如果您的三个 LI 是(房屋、汽车、树),您可以将它们命名/标识为“li_House”、“li_Car”和“li_Tree”。然后当你序列化它们时,你会按顺序获取名称值,而不是创建它的索引。 我整个上午都在找这个。感谢您回答这个问题! 该死的……为我节省了很多时间 在我的情况下,在 ajax 调用“ui-sortable”类已被删除后,当使用序列化的可排序调用时会反映此错误。在将“ui-sortable”添加到选择器的主父 div 之后,我已经解决了,例如 id:“mylist” 的示例标签。注:我是 jquery v1.7.1 和 jQuery UI - v1.10.3【参考方案2】:当您使用不合规的 id 时,Jquery 会遇到问题。
ID 不允许以数字开头。它们可以包含数字,但不能作为第一个字符。
【讨论】:
【参考方案3】:(链接更新) 嗨,几天前我偶然发现了一个类似的问题,但在我的情况下,保持元素的顺序完整是很重要的。我编写了一个小插件,它允许您序列化任意深度和复杂度的 ul 和 ol 列表:
serializeTree
【讨论】:
以上是关于Jquery 可排序列表不会序列化,为啥?的主要内容,如果未能解决你的问题,请参考以下文章