Jquery可排序/序列化,可排序和连接
嘿,我对jquery和ajax都非常陌生,我正在寻找一些关于如何正确执行此操作的建议。
我有一个div,我正在使用它可以排序,所以我可以根据需要安排事情。 它看起来像:
$('#resource-detail-content).sortable({
然后在我的ajax数据中我有类似的东西:
data: $('#resource-detail-content').sortable('serialize'),
哪个工作正常,但分解数据是有意义的,我把div分成两个单独的div,并使用connectWith允许拖动两者之间的内容:
$('#resource-detail-content,#resource-detail-content2').sortable({ connectWith: '#resource-detail-content,#resource-detail-content2',
我现在要弄清楚的是如何在我的ajax put中发送两个div的数据。 我试过了明显的事:
data: $('#resource-detail-content, #resource-detail-content2').sortable('serialize'),
但没有运气。 我非常感谢任何帮助。
干杯,肖恩
首先你应该使用类而不是ID,它会更灵活。
我认为问题来自于你有2个对象,每次调用后都会覆盖数据内容。
你应该使用一个函数,如下所示:
data : getContent(), function getContent() { var data = ""; $(".resource-detail-content").each(function(){ if (data == "") data += $(this).serialize(); else data += "&" + $(this).serialize(); }); return data; }
有一种更容易的方法来做到这一点。 我使用了jQuery UI示例中的portlet,但我只有一列而不是三列: http : //jqueryui.com/sortable/#portlets
我想序列化所有的portlet。 所以这是我的代码:
update: function (event, ui) { var data = $(this).sortable('serialize', { "attribute": "data-sort" }); }
第二个参数中的attribute
键更改行为以搜索特殊的data-sort
属性,该属性应格式如下:
在HTML中,我的行看起来像这样:
Question 1 Answer 1 Question 2 Answer 2 Question 3 Answer 3
在交换前两个元素后,结束这样的数据:
"id[]=2&id[]=1&id[]=3"