9
本质孩子可以拖动到父母,但父母不能拖到孩子。JQuery用户界面可拖动助手不能拖到投掷的孩子
我写了一个简单的例子来证明这一点。三个div都可以拖放到另一个上。您可以将蓝色拖到父母的绿色或红色上,并且可以将绿色拖到其父母的红色上。您不能将红色拖到子绿色或蓝色,也不能将绿色拖到子蓝色。
我怀疑这是关系到使用的帮手。如果没有帮助,元素会被鼠标光标拖动,所以把元素放到子元素上的想法没有任何意义,但是如果使用帮助器,则可以克隆该对象。
我怎样才能让父元素拖到孩子?
HTML:
<div class="first">
<div class="second">
<div class="third"></div>
</div>
</div>
JS:
$('div').draggable(
{
revert: true,
helper: 'clone',
appendTo: 'body',
refreshPositions: true
});
$('div').droppable(
{
greedy: true,
accept: 'div',
activeClass: 'active',
hoverClass: 'hover',
tolerance: 'pointer',
drop: function(event, ui)
{
alert($(this).attr('class'));
}
});
CSS:
div
{
display: inline-block;
padding: 40px;
}
div.ui-draggable-dragging
{
outline: 2px solid black;
}
div.active
{
outline: 4px solid #0ff;
}
div.hover
{
background-color: #f0f;
}
.first
{
background-color: red;
}
.second
{
background-color: green;
}
.third
{
background-color: blue;
width: 50px;
height: 50px;
}
https://jsfiddle.net/5dhfmmxf/3/
(也有类似拖着一个帮手的问题在自身上,BU这特别是关于拖到不同的孩子身上。这就是说,我期望有一个解决方案,以允许拖拉助手自己也与孩子一起)。
你应该在你的答案代码。这也是相当不错的,但克隆的元素应该放在body标签中,以避开其他错误,比如在父级边界外移动。 – Sirisian