我正在使用jQuery UI .draggable
,.sortable
和.droppable
功能创建一个用于构建各种表单构建器的工具。
工具本身执行以下操作:
您可以在此处查看演示:http://jsfiddle.net/yd9w0d0d/
(注意:当我将其迁移到jsfiddle进行演示时,删除和可能的其他功能不起作用。)
问题:
这个问题似乎与可拖动的可排序交互方式有关。正如您所看到的,我使用了选项connectToSortable: ".component-container",
,因此我的可拖动项目将继承直接拖动到可排序组件列表中的功能(利用占位符用于排序项目时)。一旦组件被拖动到可排序列表上,它就“适应”包含在列表中,但是如果你继续拖放到“拖动组件这里容器”中它就不再具有被删除的能力。似乎通过将其拖动到可排序列表上,辅助类DOM已更改,并且将不再在正常删除区域中接受。
重现的步骤:
我注意到,通过使用connectToSortable选项,用于指定draggable元素的辅助类是放置在可排序列表中的实际元素,而不是原始元素或可丢弃“drop”事件中指定的元素。
我需要帮助理解为什么组件在拖过可排序列表后无法拖入放置区域。有没有办法在可排序列表中存在后重置(销毁和重新创建)拖动元素?有没有更好的方法来集成可拖动和可排序?
答案 0 :(得分:1)
我最终通过完全从脚本中完全删除了可放置区域和jQuery .droppable
调用并仅依赖于.draggable
和.sortable.
您可以在此处查看完成的工作演示:http://jsfiddle.net/hurq5qre/
我需要向可排序容器添加一些min-height
,以便为dropzone / sortable区域创建足够的区域。
我通过添加over / out选项添加和删除类来模仿可排序的悬停类。