javascript - 拖放不起作用,不允许放在 div 上

标签 javascript html drag-and-drop

我正在尝试使用拖放创建应用程序。当我尝试将元素放在名为“serviciosARealizar”的 div 上时,它不允许。请帮忙

HTML

   <div id='aceite' draggable="true" ondragstart="arrastrar(event)"><img src='img/aceite.jpg' /></div>
   <div id='luces' draggable="true" ondragstart="arrastrar(event)"><img src='img/lamp.png' /></div>
   <div id='serviciosARealizar' ondrop='soltar(event)' ondragover='permiteSoltar(event)'></div>

JavaScript

   <script>

    function permiteSoltar(ev){
        ev.preventDefault();
    }

    function soltar(ev){
        ev.preventDefault();
        var data=ev.dataTransfer.getData("Text");
        ev.target.appendChild(document.getElementById(data));
    }
    function arrastrar(ev){
        ev.dataTransfer.setData("Text",ev.target.id);
    }

  </script>

最佳答案

您可能正在寻找这个;

function dragStart(ev) {
    draggSrcID = ev.target.id;
    dragSrcEl = ev.target;
    ev.dataTransfer.effectAllowed = 'move';
    ev.dataTransfer.setData('text/html', ev.target.outerHTML);
}

function allowDrop(ev) {
    ev.preventDefault();
}

function drop(ev) {
    ev.target.appendChild(document.getElementById(draggSrcID));
    ev.preventDefault();
} 

即使函数名称不同,它仍然可以正常工作。只需确保在图像上(这只适用于图像)添加 draggable="true"onstartdrag="drop(ev)"。还要确保图像有 id,任何 id。

关于javascript - 拖放不起作用,不允许放在 div 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113718/

相关文章:

java - 将图像文件与 Swing TransferHandler 一起使用

javascript - 防止 IndexedDb 在 Chrome 中呈指数级增长

javascript - 在加载和就绪事件之前将图像大小获取到全局变量中

javascript - 根据先前的 Ajax 调用,根据用户确认执行 Ajax 调用

javascript - 如何将浏览器窗口固定为特定大小并禁用调整大小?

javascript - 放下时制作可拖动的快照

firefox - 将图像从网页的 html 部分拖放到 Canvas 上后如何访问图像数据?

javascript - ReactJS 中的 setState 函数不是设置状态。如何克服这个问题呢?

html - 如何让我的容器自动关闭页面

javascript - 如何仅使用 CSS 制作图像轮播?