0

我目前正在尝试创建一个 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));
}
4

1 回答 1

0

Enyo 事件处理程序的第一个参数是sender,第二个参数是event。尝试添加第一个参数占位符,看看您是否可以访问第二个参数上的事件对象。

在此处查看更多信息:http: //enyojs.com/docs/latest/developer-guide/getting-started/event-handling.html

于 2018-05-14T04:28:33.340 回答