我目前正在尝试创建一个 Enyo.js 拖放应用程序。我本机使用 HTML5 拖放 API。我在我的“ondragstart”处理程序中不断遇到这个错误。我知道我正在正确调用事件处理程序,因为我正在调用该函数,但是,当我尝试设置“dataTransfer.setData()”时它会出错。我得到的错误是
TypeError:未定义不是对象(评估'inEvent.dataTransfer.setData')
我不明白为什么,请帮忙。
name: "ObjectBox",
kind: Control,
components: [
{
content: "Things im trying to move/listen to"
},
{
kind: Square,
ondragstart: "dragStart"
},
{
kind: Circle,
events: {
ondragstart: "dragStart"
}
},
{
kind: DropTarget,
ondrag: "drag",
ondrop: "drop"
}
]
上面的代码是我如何设置对象(对象具有可拖动:true)以及我如何处理事件。
下面的代码是我如何处理事件
dragStart: function(inEvent) {
console.log("Started");
console.log(inEvent);
inEvent.dataTransfer.setData("text", inEvent.target.id); // this where I get error
},
drag: function(inEvent) {
console.log("Dragging");
inEvent.preventDefault();
},
drop: function(inEvent) {
console.log("Dropped");
inEvent.preventDefault();
var data = inEvent.dataTransfer.getData("text");
inEvent.target.appendChild(document.getElementById(data));
}