动态添加事件侦听器

时间:2013-11-03 13:46:43

标签: javascript

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

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);});

但没有任何作用。任何人都可以帮我这个吗?

提前感谢,

德克

1 个答案:

答案 0 :(得分: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是邪恶的。