HTML5拖放;删除javascript创建的元素:

HTML5拖放;删除javascript创建的元素:,javascript,html,drag-and-drop,generated,Javascript,Html,Drag And Drop,Generated,当我尝试拖放由html正常创建的元素时,一切正常,但当我尝试拖放由javascript生成的元素时,返回以下错误: Uncaught TypeError: Cannot read property 'parentNode' of null 我的代码: 用于拖放的js: var id1; var name; function drag(ev) { name = document.getElementById(ev.target.id).parentNode.id; ev.data

当我尝试拖放由html正常创建的元素时,一切正常,但当我尝试拖放由javascript生成的元素时,返回以下错误:

Uncaught TypeError: Cannot read property 'parentNode' of null
我的代码: 用于拖放的js:

var id1;
var name;
function drag(ev) {
    name = document.getElementById(ev.target.id).parentNode.id;
    ev.dataTransfer.setData("text", name);
    id1 = document.getElementById(name).parentNode.id;
}
function drop(ev) {
    var id2 = ev.target.id;
    if(id1 === id2 + '1'){
        ev.preventDefault();
        var data = ev.dataTransfer.getData("text");
        ev.target.appendChild(document.getElementById(data));
        //Add info to arrays
        holders["\"" + id2 + "\": ["].push("{\"place_holder\":\"" + id2 + "\", \"name\":\"" + name + "\"}", ", ");
    }
}

function allowDrop(ev) {
    ev.preventDefault();
}
javascript生成的html示例:

<div id="screen">
    <div id="menu_items" ondrop="drag(event)" ondragover="allowDrop(event)"></div>
    <div id="items1" ondrop="drag(event)" ondragover="allowDrop(event)"></div></div>
<div id="options">
    <div class="menu_items1">
        <div id="m_div_img10" class="img0" draggable="true" ondragstart="drag(event)">                  <img src="./images/example.jpg" alt="example.jpg">
            <span class="tooltip"><img src="./images/tip.png"></span></div><div id="m_div_img21" class="img1" draggable="true" ondragstart="drag(event)">
            <img src="./images/example.jpg" alt="example.jpg">
                <span class="tooltip">
            <img src="./images/tip.png">
        </span>
    </div>
    </div>
    <div class="items1"></div>
</div>
这:

给你这个:

<div ondragstart="drag(event)"></div>
或者更好:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
乍一看,这可能是你的问题,希望能有所帮助:)

这:

给你这个:

<div ondragstart="drag(event)"></div>
或者更好:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
乍一看,这可能是你的问题,希望能有所帮助:)

这:

给你这个:

<div ondragstart="drag(event)"></div>
或者更好:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
乍一看,这可能是你的问题,希望能有所帮助:)

这:

给你这个:

<div ondragstart="drag(event)"></div>
或者更好:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});

乍一看,这可能是您的问题,希望能有所帮助:)

我通过在这些函数中添加函数来修复它,而不是通过ev.target.id获取id,而是通过以下方法获取id:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
它变成:

innerDivElem.addEventListener( "dragstart" , function drag(ev){
    name = document.getElementById(this.id).id;
    ev.dataTransfer.setData("text", name);
    id1 = document.getElementById(name).parentNode.id;
});

我通过在这些函数中添加函数来修复它,并不是通过ev.target.id获取id,而是通过以下方法获取id:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
它变成:

innerDivElem.addEventListener( "dragstart" , function drag(ev){
    name = document.getElementById(this.id).id;
    ev.dataTransfer.setData("text", name);
    id1 = document.getElementById(name).parentNode.id;
});

我通过在这些函数中添加函数来修复它,并不是通过ev.target.id获取id,而是通过以下方法获取id:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
它变成:

innerDivElem.addEventListener( "dragstart" , function drag(ev){
    name = document.getElementById(this.id).id;
    ev.dataTransfer.setData("text", name);
    id1 = document.getElementById(name).parentNode.id;
});

我通过在这些函数中添加函数来修复它,并不是通过ev.target.id获取id,而是通过以下方法获取id:

innerDivElement.addEventListener( "dragstart" , function(e){
    drag(e);
});
它变成:

innerDivElem.addEventListener( "dragstart" , function drag(ev){
    name = document.getElementById(this.id).id;
    ev.dataTransfer.setData("text", name);
    id1 = document.getElementById(name).parentNode.id;
});

我一次又一次地犯同样的错误。下面是我如何设置listners的,以及一个完整的事件输出-pastebin.com/FE0HZwJRI已经多次尝试了相同的错误。下面是我如何设置listners的,以及一个完整的事件输出-pastebin.com/FE0HZwJRI已经多次尝试了相同的错误。下面是我如何设置listners的,以及一个完整的事件输出-pastebin.com/FE0HZwJRI已经多次尝试了相同的错误。下面是我如何设置listners和事件的完整输出-pastebin.com/FE0HZwJR