【发布时间】:2023-03-31 14:08:01
【问题描述】:
我正在尝试将一个 div 从一个容器拖到另一个容器并将它们放在那里。 这样可行。 问题是当我尝试保存并重新加载位置时。 Draggable & droppable div应该从#dragdelete div拖到#tagDropPoint div
$('.resizeDiv')
.draggable({ revert: "invalid", snap: "#dragDelete", snapMode: "inner", containment: "#draggableArea" });
$('#tagDropPoint').droppable({accept: '.resizeDiv',
drop: function(event, ui) {
setActive(lastXmlTag);
ui.draggable.resizable();
}
});
这就是我获得职位的方式
$('.resizeDiv').mouseup(
function(){
var position = $(this).position();
var dropAreaPos = $('#tagDropPoint').position();
var xpos = position.left - dropAreaPos.left;
var ypos = position.top - dropAreaPos.top;
var width = $(this).width();
var height = $(this).height();
var thisId = $(this).attr("id");
lastXmlTag = thisId;
updateDDXMLAttr(xpos, ypos, width, height, thisId);
}
);
用于拖动的 HTML: 将标签拖到此处。
<div class="ddSpacer"> </div>
<div id="dragDelete" class="dragDelete" style="height: {$this->heightListBox}px;">
<p class="dynConTagHeading">XML-Tags</p>
<div id="dynConTagsContainer">
</div>
</div>
<p style="clear: both"> </div>
</div>
位置和大小值存储在隐藏字段中,并在刷新站点后重新加载。 draggableArea div 显示在 jquery 对话框中。 但是重新加载时位置不一样。怎么解决。
【问题讨论】:
-
请创建一个 JSFIDDLE : jsfiddle.net 。
-
现在我创建了一个 jsfiddle link 但没有重新加载。我希望我可以在 jsfiddle 中没有完整功能的情况下解释这个问题。如您所见,有一个可拖动的 div,您可以将其拖动到灰色区域。在重新加载页面上,我得到值 xpos = position.left - dropAreaPos.left;ypos = position.top - dropAreaPos.top;从 POST(在 jsf 中现在没有我使用的隐藏字段)我的问题是:当我通过 $('.resizeDiv').css() 将 x pos 和 ypos 放回 div 时,位置不一样和以前一样
-
我正在检查你的代码。
标签: jquery css html position draggable