我有一组可分类的项目,包含1个子项目。我需要子项目可以排序,也可以放到其他项目上,我需要父项目也可以排序(但不能互相放置或在子项目上。)我几乎已经正常工作了。最初,我为父母使用了Sortables,为孩子使用了Draggable / Droppable,但这并没有让我对孩子们进行分类。我现在使用常见的嵌套可排序设置,其中sortable连接到自身。这对孩子们来说还可以,但是当我尝试对父母进行排序时,DOM会开始......请查看下面的小提琴,看看自己:)
我已经尝试设置一个toleranceElement,虽然我刚刚发现它存在,所以我不认为我正确使用它。我看过Manuele Sarfatti的nestedSortable插件,这很棒,但不幸的是我没有使用标记。我相信标记是问题所在,但正如你可能猜到的那样,我无法改变它。
我在上面的小提琴中没有包含的一件事是我在receive
事件中的代码,它检查被拖动的项目是否是父项并且被放在父项上,在这种情况下我调用.sortable("cancel")
来阻止该项目被置于另一个父项下。只有在调用列表之间的连接时才会调用此事件。
感谢所有建议!我已经阅读了几乎所有关于jQuery UI嵌套sortables的问题而没有找到答案。如果条件恰到好处,嵌套的sortable似乎是那些效果很好的东西之一,但是否则会引起巨大的麻烦。
最后一件事,我已经使用补丁here来修正嵌套sortables的一些跳跃行为。你可以在jsfiddle链接上看到它,显然。