问题 将Jquery拖动到它的父jquery对话框中


我有一个充满可拖动对象的jquery对话框。可放置目标位于对话框之外。

当我启动拖动时,droppable会正确响应(视觉指示它是一个可放置的目标),并且在丢弃之后正确的事件触发,因此我可以正确处理掉落。

问题是拖动的对象仅在对话框中保持可见,并且不会“跳出”。

我已经有可拖动从一个可滚动的div拖动到另一个没有问题,但从对话框到包含该对话框的页面它不起作用。对话框内容在任何拖动方向滚动。

我的可拖动论点如下:

var draggableArguments={
     revert: 'invalid',
     helper:'clone',
     containment: 'DOM',
     zIndex: 999,
     addClasses: false
    }

   theObject.draggable(draggableArguments);

任何建议,以便我的可拖动对象可以跨越对话框边界?

谢谢。


12178
2017-09-27 18:42


起源



答案:


固定,实际上很简单。

我只需要在draggable上使用appendTo选项,以便将帮助器附加到我希望它拖动的元素(例如#page,包含我的页面的div)。这会从对话框中删除它(它具有“overflow:auto”属性,该属性添加滚动条以扩展画布以使drag元素始终在其中)并将其附加到#page元素。

唯一的问题是我的对话框有一个非常高的zIndex,所以我只是增加了zIndex选项。

var draggableArguments={
     revert: 'invalid',
     helper:'clone',
     appendTo: '#page',
     containment: 'DOM',
     zIndex: 1500,
     addClasses: false
}

theObject.draggable(draggableArguments);

12
2017-09-27 21:52



+1有同样的问题,在这里找到解决方案。谢谢 - The Bndr


答案:


固定,实际上很简单。

我只需要在draggable上使用appendTo选项,以便将帮助器附加到我希望它拖动的元素(例如#page,包含我的页面的div)。这会从对话框中删除它(它具有“overflow:auto”属性,该属性添加滚动条以扩展画布以使drag元素始终在其中)并将其附加到#page元素。

唯一的问题是我的对话框有一个非常高的zIndex,所以我只是增加了zIndex选项。

var draggableArguments={
     revert: 'invalid',
     helper:'clone',
     appendTo: '#page',
     containment: 'DOM',
     zIndex: 1500,
     addClasses: false
}

theObject.draggable(draggableArguments);

12
2017-09-27 21:52



+1有同样的问题,在这里找到解决方案。谢谢 - The Bndr


你必须这样做:

$( 'my_draggable')。拖动({
  助手:“克隆”,
  appendTo:'body',
  scroll:false
});

3
2017-07-19 21:18



我知道这是一个古老的答案,但对于现在读这篇文章的人来说,这对我来说很有用 helper: 'clone' 省略。 - 100pic