jQuery draggable / droppable不会掉落鼠标光标所在的位置

时间:2014-08-13 09:20:39

标签: jquery jquery-ui drag-and-drop jquery-ui-draggable jquery-ui-droppable

(JSFiddle在底部)

在我正在开发的应用程序中,用户可以将jQuery UI可拖动项从平面列表映射到树节点,其中叶节点是jQuery UI droppables。平面列表中的项目可以逐个映射,但是用户也可以使用multiselect来抓取任意数量的项目,并一次性将它们放到同一个droppable上。

当用户选择大量项目时,可拖动助手变得相当长。当尝试将项目放在树底部附近的节点上时,这会导致问题。

我之后的行为是删除鼠标光标当前所在的叶节点(droppable)上的项目。这似乎适用于所有情况,除非您到达列表的底部。光标将向下移动但是可拖动的光标将保持原样(它不能再进一步)。而不是放在鼠标光标所在的droppable上,draggable将被放置在鼠标光标预期位于下方的droppable上(基于cursorAt属性),或者至少看起来像< / em>的

我尝试了很多设置和更改,但我无法控制这种行为。我发现使用搜索的大多数解决方案都指向droppable上的tolerance: "pointer"设置,但我已经使用了它并且它没有解决问题。我的助手克隆了可拖动的并设置了指针事件:无&#39;在它上面,但这似乎并不重要(我也可以删除辅助函数,行为也一样)。

这是一个错误吗?有办法解决吗?非常感谢帮助。如果需要更多信息,请与我们联系。谢谢!

JSFiddle重现问题:http://jsfiddle.net/1odvbmah/4/

编辑:免责声明:JSFiddle是我能够重现问题的最简单方法。因此,有些事情并不像在实际案例中那样完全正常。我将可放置的容器卡在底部以限制可拖动。在实际情况中,droppables列表是可滚动的,但是draggable不能超出该列表的底部。结果行为完全相同。因此,一个小的CSS更改不能解决我的真正问题:)

第二次编辑:更改cursorAt值也不是解决方案。在实际情况中,拖动可以变得比屏幕高度更高,并且树控件(带有droppable)几乎是整页高度。

1 个答案:

答案 0 :(得分:0)

事实证明,这确实是jQuery UI中的一个错误。自从我在jQuery中查找bug以来,我没有找到它,但显然拖放是在UI中。

最近修复了这个bug。该修复程序也解决了我的问题。

http://bugs.jqueryui.com/ticket/4977