JQuery UI Sortable は、ギャップのないリストにはうまく機能しますが、たとえば、ギャップのあるアイテムのリストをレンダリングしたいとします。
1、2、空、4、5、6、空、8
ここで、数字はスロット番号を表します。ユーザーがスロット 2 に要素をドラッグすると、2 の値が空のスロット 3 にプッシュされ、新しい要素をスロット 2 にドロップできます。空の 3 スロットでは、リスト アイテムは押し下げられず、ユーザーは新しいアイテムを空の 3 スロットにドロップできます。うまくいけば、これは理にかなっています。
私はJQuery UI Sortableコードを見てきましたが、これを達成するには変更を利用してコールバックを受け取る必要があるようですが、一般的にJQuery/JSに慣れていないため、何を使用すればよいかわかりませんこれらの空のスロット プレースホルダーを追加し、選択リストを管理して、カスタム コードで並べ替え機能を壊さないようにします。
ポインタ、例などは大歓迎です。
これについてしばらく頭を悩ませた後、jsFiddle を作成しました: http://jsfiddle.net/pdHnX/
問題を説明するのに役立ちます。私が達成しようとしているすべてのことは、オーバーライドされた _rearrange メソッドで実現できると信じています。フィドル コードは、アイテムがフィラー アイテムを置き換えるケースを処理しますが、奇妙な問題があります。アイテム リストからフィラー リストにアイテムをドラッグすると、アイテムをドロップしてから、フィラー リスト内で同じアイテムをドラッグします。 、フィラー リストが 1 縮小されますが、これは問題です。
より多くの項目をフィラー リストにドラッグし始めると、さらに多くの問題が発生しますが、これが現時点での問題です。