使用sortable()方法并通过jQuery发送datain URL

我的两段代码都有效。 可悲的是,他们没有一起工作。

$(document).ready(function() { $("#ui-sortable").live('hover', function() { **var string = ''; var folders = $("[name^='note-behaviour-folder-add']"); for(var x = 0; x < folders.length; x++){ if ((folders[x].type === "checkbox") && (folders[x].checked)) { string = string.concat("&folders[]=" + folders[x].value); } }** $("#ui-sortable").sortable({ update: function () { $.ajax({ type: "POST", url: base_url + "behaviours/folders/jq_set_folder_behaviour_order", data: "&note_id=" + $("#ui-sortable").data("note") + string }); } }); }); }); 

我需要知道如何在sortable()方法的上下文中以粗体方式标记代码。

在这里,粗体代码是做一件事(抓取已经排序的复选框的值),但它直到事后才报告其数据,这意味着发送的排序数据是在排序之前的数据。

有任何想法吗?

在“update”回调中拼凑你的查询字符串。 目前最有可能在排序之前调用:

 $(document).ready(function() { $("#ui-sortable").live('hover', function() { $("#ui-sortable").sortable({ update: function () { var string = ''; var folders = $("[name^='note-behaviour-folder-add']"); for(var x = 0; x < folders.length; x++){ if ((folders[x].type === "checkbox") && (folders[x].checked)) { string = string.concat("&folders[]=" + folders[x].value); } } $.ajax({ type: "POST", url: base_url + "behaviours/folders/jq_set_folder_behaviour_order", data: "&note_id=" + $("#ui-sortable").data("note") + string }); } }); }); });