简体   繁体   English

Javascript 拖放功能问题

[英]Javascript drag and drop functionality issue

  <!DOCTYPE HTML>
  <html>
  <head>
  <style>
  #div1 {
    width: 350px;
    height: 70px;
    padding: 10px;
    border: 1px solid #aaaaaa;
  }
  </style>
  <script>
  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>
  </head>
  <body>

  <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
  <br>
  <img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

  </body>
  </html>

Here is my code above.这是我上面的代码。

I wants to drag one html element from one div to another with out removing the primary element.我想将一个 html 元素从一个 div 拖到另一个 div 而不删除主要元素。

When i am dragging element from one div to another it is going there but replacing the primary element.当我将元素从一个 div 拖到另一个 div 时,它会去那里但替换主要元素。 I wants my primary element should be stay steady on his own position after drop also.我希望我的主要元素也应该在下降后保持稳定在自己的位置上。

Please have a look and let me know there is any way...请看看,让我知道有什么办法...

clone primary element then add using 克隆主元素然后添加使用

var cln = date.cloneNode(true);

 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"); let item = document.getElementById(data); var cln = item.cloneNode(true); ev.target.appendChild(cln); }
 #div1 { width: 350px; height: 70px; padding: 10px; border: 1px solid #aaaaaa; }
 <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <br> <img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM