vue动态创建dom并且绑定事件

新手上路,请多包涵
  • 想要实现

    1.拖拽图片到容器中,动态生成img;生成的img可以被拖动到另一个容器中。
    2.动态创建img标签,并且绑定事件。
    

TRheiZ.png

drop:function(ev){
            // console.log(this);
            console.log("drop",ev.offsetX,ev.offsetY,ev)

      ev.preventDefault();
        var data=ev.dataTransfer.getData("Text");
            this.changeXY(document.getElementById(data),ev.offsetX,ev.offsetY);
        if(ev.target.id==data)return;
        ev.target.appendChild(document.getElementById(data));
    },
    drag:function(ev){
            console.log('drag');
            this.selectId=ev.target.id;
      ev.dataTransfer.setData("Text",ev.target.id);
    },
  • 遇到问题

    1.挂载到'#img_list'的时候,发现this.parent为undefined。
    2.无法与组件进行通讯。

    代码逻辑:

     var MyComponent = Vue.extend({
         template:'<img src="'+data+'" draggable="true" style="position:absolute" v-on:dragstart="drag($event)" id="A'+Math.floor(Math.random()*1000)+'"/>',
         methods:{
             drag(evt){
                 this.$parent.drag.call(this.$parent,evt);
             }
         }
     })
     new MyComponent().$mount().$appendTo('#img_list')
   }
阅读 15.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏