【问题标题】:Enyo.js/Javascript Event HandlingEnyo.js/Javascript 事件处理
【发布时间】:2018-05-10 16:59:05
【问题描述】:

我目前正在尝试创建一个 Enyo.js 拖放应用程序。我本机使用 HTML5 拖放 API。我在我的“ondragstart”处理程序中不断遇到这个错误。我知道我正在正确调用事件处理程序,因为我正在调用该函数,但是,当我尝试设置“dataTransfer.setData()”时它会出错。我得到的错误是

TypeError: undefined is not an object (evalating '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));
}

【问题讨论】:

    标签: javascript drag-and-drop enyo html5-draggable


    【解决方案1】:

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

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

    【讨论】:

    • 我试过了,在我看来 dataTransfer 需要一个对象。 inEvent 不是一个对象,但我就是不知道为什么?
    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多