我在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
答案 0 :(得分:1)
Javascript事件处理程序全部小写;你的意思是ondrop
。
另外,不要分配字符串;你应该直接分配函数:
leftTree.ondrop = drop;