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