Javascript 拖放不工作,不允许在div上拖放

Javascript 拖放不工作,不允许在div上拖放,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,我正在尝试使用拖放创建一个应用程序。当我试图将元素放到一个名为“serviciosARealizar”的div中时,它是不允许的。请帮忙 HTML JAVASCRIPT <script> function permiteSoltar(ev){ ev.preventDefault(); } function soltar(ev){ ev.preventDefault(); var data=ev.da

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

HTML


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>

功能许可电压(ev){
ev.preventDefault();
}
功能soltar(ev){
ev.preventDefault();
var data=ev.dataTransfer.getData(“文本”);
ev.target.appendChild(document.getElementById(数据));
}
功能阵列(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}

您的问题是图像没有id,只有div。拖动时,您不会拖动div,而是拖动图像。从DIV那里拿到身份证,放到imgs里,它就能完美地工作了。我用下面的标签试过了。(我还假设您的CSS文件在ServicoArealizar div上有一个维度,否则您需要指定一个大小)


您的问题是图像没有id,只有div。拖动时,您不会拖动div,而是拖动图像。从DIV那里拿到身份证,放到imgs里,它就能完美地工作了。我用下面的标签试过了。(我还假设您的CSS文件在ServicoArealizar div上有一个维度,否则您需要指定一个大小)


您可能正在寻找这个

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。

您可能正在查找此文件

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。

我让它在IE、FF和Chrome的最新版本中工作。它在JSFIDLE中不起作用。你想用什么来运行它?我想用id='serviciosARealizar'将里面名为'aceite'的div放到div中。你使用的浏览器和浏览器版本是什么?文件顶部有什么(DOCTYPE)?叹气。很抱歉,您似乎不愿意提供其他人可以帮助您的信息。我完成了。我让它在IE、FF和Chrome的最新版本中工作。它在JSFIDLE中不起作用。你想用什么来运行它?我想用id='serviciosARealizar'将里面名为'aceite'的div放到div中。你使用的浏览器和浏览器版本是什么?文件顶部有什么(DOCTYPE)?叹气。很抱歉,您似乎不愿意提供其他人可以帮助您的信息。我做完了。
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();
}