未分配Javascript onDrop属性

时间:2017-04-14 14:12:57

标签: javascript html drag-and-drop

我在javascript中遇到了一个奇怪的问题。我试图创建一个div框,我可以放弃其他div。奇怪的是,onDrop属性并没有被分配到div,尽管如果我读它,它似乎有它。我的错误在哪里? 这是fiddle

    function creatLeftRightTree(parentElement){
            var leftTree = document.createElement("DIV");
            var rightTree = document.createElement("DIV");

            leftTree.id="leftTree";
            rightTree.id="rightTree";
            leftTree.className="dndcontainer";
            rightTree.className="dndcontainer";


            leftTree.onDrop="drop(event)";
            rightTree.onDrop="drop(event)";

            rightTree.ondragover="allowDrop(event)";

            parentElement.appendChild(leftTree);
            parentElement.appendChild(rightTree);
            rightTree.innerHTML+= rightTree.onDrop;
            //it must not be possible to drop in the left Tree

        }
         function drop(ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.getData("text");
        var dropTarget = ev.target;
                dropTarget.appendChild(document.getElementById(data));
        }

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

function drag(ev) {
            ev.preventDefault();
        }
creatLeftRightTree(document.getElementsByTagName("body")[0]);

编辑:更新小提琴和代码以减少混淆。我写了一个名为drop(event)的替代函数。然而,并不重要,因为问题是:它没有改变onDrop-Attribute

This here is the problem, this div should have the attribute

1 个答案:

答案 0 :(得分:1)

Javascript事件处理程序全部小写;你的意思是ondrop

另外,不要分配字符串;你应该直接分配函数:

leftTree.ondrop = drop;