1 レベルの子アイテムを持つ並べ替え可能なアイテムのグループがあります。子アイテムをソート可能にするだけでなく、他のアイテムにドロップできるようにする必要があり、親アイテムもソート可能にする必要があります (ただし、相互に、または子アイテムにドロップすることはできません)。もともと、私は親に Sortables を使用し、子に Draggable/Droppable を使用していましたが、それでは子を並べ替えることができませんでした。私は現在、ソート可能がそれ自体に接続されている一般的なネストされたソート可能セットアップを使用しています。これは子供には問題なく機能しますが、親を並べ替えようとするとDOMが開始されます...下のフィドルをチェックして、自分で確認してください:)
私はtoleranceElementを設定しようとしましたが、それが存在することを発見したばかりなので、正しく使用しているとは思いません。Manuele Sarfatti のnestedSortableプラグインを見てきましたが、これはすばらしいものですが、残念ながら私が持っているマークアップでは動作しません。マークアップが問題であることはかなり確信していますが、おそらくご想像のとおり、それを変更することはできません。
上記のフィドルに含めなかったものの1つは、receive
イベントにあるコードです。これは、ドラッグされたアイテムが親であり、親にドロップされているかどうかを確認します。その場合、アイテムがドロップされないようにするために呼び出し.sortable("cancel")
ます別の親の下に配置されます。このイベントは、リスト間の接続が呼び出されたときにのみ呼び出されることになっています。
どんなアドバイスでも大歓迎です!ここで、jQuery UI のネストされたソート可能オブジェクトに関連するほぼすべての質問を読みましたが、答えは見つかりませんでした。ネストされたソータブルは、条件が正しければうまく機能するものの 1 つに見えますが、それ以外の場合は大きな頭痛の種になります。
最後に、ここでパッチを適用して、ネストされたソート可能オブジェクトでの不安定な動作を修正しました。ただし、明らかに、jsfiddle リンクでそれを見ることはできません。