我正在尝试为动态创建的对象添加事件侦听器
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);});
但没有任何作用。任何人都可以帮我这个吗?
提前感谢,
德克
答案 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
是邪恶的。