尽管设置了包含:窗口,但无法将可拖动元素拖到它的父节点之外

时间:2014-09-10 10:06:03

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

标题说明了所有(或大部分)。在堆栈交换上发现了一个类似的问题,其中一个解决方案是从父组件中删除overflow-x:hidden,但不幸的是,这不是我的情况下的一个选项(或者它是一个糟糕而复杂的选项)。 p>

DOM树是动态生成的,有点乱,所以我不会发布它,但无论如何hieararchy是关于:

A> B> C>拖动 A>可投放

其中:     C有溢出-y:auto;位置:相对;显示:块;     B显示:flex;溢出:auto;     显示:块;位置:相对;

这是可拖动元素的代码:

ret.draggable({
containment: "window",
opacity:0.5,
revert:"invalid",
scroll:false,
snap:true,
appendTo: 'body',
zIndex:420
}); 

尝试使用各种不同的值进行包含+和&没有所有额外的参数都具有相同的结果:draggable元素拒绝离开其父(C)。

还尝试从C中移除overflow-y,这使得可拖动的移动绕B但它仍然没有进入A(更不用说破坏功能)。从任何地方删除了溢出,这使得draggable最终进入A,但是把所有事情搞得一团糟,以至于更容易破解jqueryui或者编写我自己的draggable而不是让它们工作无溢出:auto。

1 个答案:

答案 0 :(得分:0)

添加了helper:"clone",最终成功了