Я перетаскиваю элемент из одного контейнера во второй контейнер (контейнеры независимы). При запуске перетаскивания я добавляю элемент перетаскивания в тело (это необходимо). Если я отбрасываю элемент во второй контейнер, я получаю координаты элемента относительно тела вместо второго контейнера, поэтому мой элемент появляется в неправильном месте во втором контейнере
Как я могу с этим справиться?
Html выглядит примерно так:
<div id="designer">
<div class="ui-layout-center">
<div id="workspace"></div>
</div>
<div class="ui-layout-north">
content
</div>
<div class="ui-layout-west">
<div class="elements">
<div class="element"></div>
<div class="element"></div>
</div>
</div>
</div>
CSS
#workspace {
position:relative;
}
.work-element { /*class for dropped element*/
position:absolute;
}
JS
$('.elements .element').draggable({
helper: copyElementHelper
});
$("#workspace").droppable({
accept: '.element',
drop: onWorkspaceDrop
});
function copyElementHelper(event) {
var $element = $('<div></div>');
return $element.appendTo('body').css('zIndex', 5).show();
};
function onWorkspaceDrop(event, ui) {
// logic for adding element to workspace
// create element
// add class work-element to created element
// set positions for created element using ui param
// here I have position relative to body
// how to transform it to be position relative to workspace
};
Возможно, вы захотите включить более релевантную информацию. Возможно ли перемещаемый элемент: позиция? В этом случае обязательно укажите позицию контейнера: относительную, чтобы она привязывалась к ней родительской.