我有一个由假想的小部件网格组成的仪表板,网格有 2 行,每行有 3 个插槽。我希望用户能够将一段内容拖到不同的插槽中,然后它会替换插槽中已经存在的内容(将其推到右侧,可能会脱离网格)。我正在使用此代码来处理拖放操作。如何检测碰撞并在目标插槽中替换小部件?
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
每个网格槽是这样的:
<div id="gridslot" ondrop="drop(event)" ondragover="allowDrop(event)"/>
<div id="widget" draggable="true" ondragstart="drag(event)"/>Some Content</div>
</div>