0

我正在尝试将事件侦听器添加到动态创建的对象

var teamDiv = document.createElement("div");

显然,以下不起作用:

teamDiv.onDragStart="drag(event)";

所以我尝试了这个:

teamDiv.addEventListener("dragstart",function(event){drag(event);});

var dragFunction = new Function("event","drag(event);");
teamDiv.addEventListener("dragstart", dragFunction);

teamDiv.addEventListener("dragstart", function(teamDiv) {dragObj(teamDiv);});

但没有任何效果。谁能帮我这个?

提前致谢,

短剑

4

1 回答 1

4

您还记得 a) 附加元素 b) 使其可拖动吗?看到这个:

var teamDiv = document.createElement('div');

// make it draggable
teamDiv.draggable = 'true';

// append it
document.body.appendChild(teamDiv);

function drag(event) {
    alert("You dragged me");
}

// either one of those will work
// teamDiv.addEventListener("dragstart", drag);
// teamDiv.ondragstart = drag;

小提琴:http: //jsfiddle.net/ZfXa5/1/

事件不是骆驼式的,所以onDragStart不会起作用,它必须是ondragstart. 您还应该真正避免将可执行代码放入字符串中。他们将被eval-ed,这完全没有必要。eval是邪恶的。

于 2013-11-03T14:04:09.613 回答