ユーザーに属するフォルダーのリストがあり、ドラッグ アンド ドロップで並べ替えできるようにしたいと考えています。ドラッグ アンド ドロップは正常に機能しますが、結果を保存する方法がわかりません。私はParseを使用しています。つまり、各オブジェクトを取得し、順序属性を変更してから再保存する必要があると思います...しかし、すべて同じ順序で出てくるため、うまくいかないようです。
並べ替えてから .sortable('toArray') を実行すると、フォルダー ID の配列が作成され、先頭に「folder」という単語が追加されるので、["folder_ab9gu3nd", "folder_kwkgiutyqo", "folder_s856skt8w"] のようになります。
そこで、フォルダ ab9gu3nd を順序 0、kwkgiutyqo を順序 1、s856skt8w を順序 2 で保存したいと思います。
これが私のコードです(「結果」はフォルダーIDの配列です):
for(var ii=0; ii<result.length; ii++) {
// Get actual id
var folderId = result[ii].replace('folder_', '');
var folderOrder = ii;
var folder = Parse.Object.extend("Folder");
var query = new Parse.Query(folder);
query.get(folderId, {
success: function(folder) {
// The object was retrieved successfully.
folder.set('order', folderOrder);
folder.save();
}
});
}
これを実行すると、すべてのフォルダーに ii の最終値が使用されたかのように、すべてのフォルダーの順序が「2」になります。これが起こらないようにするにはどうすればよいですか?