javascript - 将图像拖放到 div 会将其从前一个 div 中删除
问题描述
我做了这个
https://jsfiddle.net/a4376mr8/
当我将图像 div 拖放到新的 div 时,为什么之前的 div 中没有它?
const boxes = document.querySelectorAll('.box');
const imageBox = document.querySelector('#draggableItem');
for (const box of boxes) {
box.addEventListener('dragover', function (e) {
e.preventDefault();
this.className += ' onhover';
})
box.addEventListener('dragleave', function () {
this.className = 'box';
})
box.addEventListener('drop', function (e) {
this.className = 'box';
this.append(imageBox);
})
}
解决方案
如果我了解您的需求,即在拖放时重复图像,您需要克隆您的 div 标签 dom 对象。由于 js 只是看到对它的引用,所以当您简单地附加它时,这会导致它只是从一个地方移动到另一个地方,而不是复制。
因此,不仅仅是附加,而是克隆节点,如下所示(小提琴 js 的第 15 行)。
this.append(imageBox.cloneNode(true));
见这里:https ://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode
推荐阅读
- angular - 在 Ionic 3 中获取用户区域设置(国家信息)
- linux - 如何在 9003 上的 iptables 中打开 udp?
- react-native - 提交时 DatePicker 输入值未传递给 Redux 表单
- dialogflow-es - Dialogflow 访问角色:使用 JS 客户端部署凭据
- sql - 需要检索表的最后插入/更新的记录并排除一些例外
- excel - 如果找到,数组中的 InStr 不填充值
- json - 当我在 android studio 中使用 volley 时如何获得响应并迭代 Json ?如果是多维数组
- c# - 如何在 Unity3D 中计算两帧(轴向系统)之间的(正确)变换矩阵
- python - 递归如何在python中保留函数值?
- functional-programming - 在 if 中定义