【问题标题】:Replace an existing image with another用另一个替换现有图像
【发布时间】:2015-03-05 17:24:28
【问题描述】:

我正在尝试构建一个简单的 Javascript 来拖放图像。 拖放后的拖动图像应在其原始位置重新生成。 我正在尝试这样的事情,但它似乎不起作用;它不会重新生成图片:

我的js函数:

var nPedY = 21;
var nPedR = 21;
var red = new Image(50,50);
red.src = "red.png";

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));
    if (data == "drag1"){
        document.getElementById("drag1").src = red.src;
        console.log(nPedR);
    }
}

还有我的 HTML 标记:

<tr>
<td width="50px" height="50px"><img id="drag1" src="red.png" align="center" draggable="true" ondragstart="drag(event)"></td>
<td width="50px" height="50px"><img id="drag2" src="yellow.png" align="center" draggable="true" ondragstart="drag(event)"></td>
</tr>

谁能给我一个提示?谢谢。

【问题讨论】:

  • 您遇到任何错误?
  • 你需要克隆元素并删除
  • [在]被拖放后...”在哪里?

标签: javascript html image


【解决方案1】:
function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data).cloneNode(true));
}

克隆元素后,只会将其副本添加到可放置对象中。

【讨论】:

  • 如果计数器值为零,是否要避免图像重新生成?提前致谢。
  • 检查计数器并移除/隐藏元素
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2014-03-14
相关资源
最近更新 更多