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