我有以下设置:
- 可排序列表,其中
<li>
之一有一个表格,每个单元格中都有列表。 - 所有列表都可以相互排序。
- 可以添加到任何可排序项的可拖动项
问题:将可拖动项(“拖动 1”、“拖动 2”、“拖动 3”)添加到水平列表(列表列表)中的列表之一时,在放置时会复制可拖动项。有时,它会在同一列表中创建两个副本,或者在项目列表中创建一个副本,在列列表中创建一个副本。
这是一个演示:http://jsfiddle.net/MQTgA/
问题:如何防止在拖放可拖动对象时创建第二个项目?
更新:通过将水平列表的类名称更改为其他名称(“hlist”)并从“connectToSortable”选项(“ul.hlist”)中省略新的类名称,它不再删除两个副本,并且仍然允许将该项目删除到任何列表中。这似乎不对。此外,当尝试将项目放入水平列表而不是主列表时,它似乎也非常敏感(不会带来良好的用户体验)。想法?
最佳答案
这样做是因为您的顶级无序列表(包含项目 1 - X 的列表)与表无序列表具有相同的类。如果将顶层更改为不同的类名,它应该停止双击可拖动对象。我希望我正确理解你的问题,这是我的改变。 New code
编辑:实际上这也没有帮助,因为那样你将无法进入你的上层列表。我认为问题在于,当您拖放时,jquery 不知道您实际上想要放入哪个 ul 中。您可以尝试将所有元素放大一点,这样用户就不必巧妙地将可拖动元素放到正确的位置。
关于javascript - 您能通过将项目拖动到嵌套可排序项中来解释这种奇怪的行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596527/