対応するデータ配列を持つソート可能なリストがあります。リストの並べ替えの順序を変更する必要があります。私は、一例として、このコードjQueryUIソート可能なプレースホルダーのインデックスが正しくない
o.dom.$editor.find('.sortable').sortable({
start: function(event, ui) {
var start_pos = ui.item.index();
ui.item.data('startIndex', start_pos); // store original index
},
change: function(event, ui) {
var start_pos = ui.item.data('startIndex'); // get original index
var index = ui.placeholder.index() - 1; // get new index
console.log(start_pos, index); // log start and end positions for debugging
ui.item.data('startIndex', index); // store new index
}
});
を使用し、のは、私はこのリストを持っているとしましょう:
A
B
C
私はリストアイテムAを保持し、二回、下に変更イベントが発生し、それを下にドラッグし、最初のスワッピングアイテムAをアイテムB、次にAをC、コンソールに表示:
0 1
1 2
そして正しいです。今(前回ドラッグからマウスを解放せず)、私はCとのスワップ、再び2回変更イベントが発生し、トップにアイテムAをバックにドラッグし、その後、Bと、コンソールが表示さ:
2 1
1 0
すべての良いです。 今私は、マウスを解放し、AとBを交換し、一度変更イベントが発生し、先頭に項目Bのドラッグを開始、しかし、コンソールが表示される場合:
1 -1
間違っているどの。何が起きてる?私は何時間もこれを理解しようとしてきました。
jsfiddle:
私が上下に動き始める場合や、なぜui.placeholder.index()に応じて、異なるインデックスから開始していますか?それは意図された行動ですか? –
@ d.a.vorm、それは私が調査していないこと、私は時間がありますときになります申し訳ありません。 –