【发布时间】:2013-04-30 09:02:42
【问题描述】:
我正在尝试将 ondragstart 处理程序添加到我动态创建的图像中:
var image = new Image();
image.src = "https://www.filepicker.io/api/file/JhJKMtnRDW9uLYcnkRKW";
image.onload = function(event){
this.ondragstart = drag(event);
divImage.appendChild(this);
};
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
但是,我得到了错误:Uncaught TypeError: Cannot call method 'setData' of undefined
我已尝试使用通过 dom 加载的静态图像进行此操作,并且效果很好,但是为什么我的动态生成的图像不起作用? 出于某种原因,在拖动功能中,当它是动态创建的图像时,ev 不包含 dataTransfer 对象?有谁知道为什么?
这就是我想要做的: http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop 除了,我希望能够通过 javascript 动态创建图像,并将 ondragstart 处理程序添加到它。
谢谢,
【问题讨论】:
标签: javascript html drag-and-drop