首页 > Web开发 > 详细

Vue.js学习笔记(8)拖放

时间:2016-09-08 14:27:25      阅读:175      评论:0      收藏:0      [点我收藏+]

小颖在目前负责的项目中,负责给同事提供所需组件,在这期间,我们家大颖姐姐让我 写个拖拽组件,一开始我是用click实现,先将你要拖拽的dom点一下,然后再点你要放的位置,这个dom再通过小颖写的方法,渲染在你要显示的地方,虽然功能实现了,可是没有实现拖拽,我那是点击,所以小颖今天就看了下html5的拖放,然后写了个小示例,希望对大家有所帮助.

小颖是用vue写的嘻嘻,大家要是用js实现的话看看HTML 5 拖放

代码请看这里,当当当当:

html:

<template>
<div class=‘drag-content‘>
  <div class=‘project-content‘>
    <div class=‘select-item‘ draggable=‘true‘ @dragstart=‘drag($event)‘ v-for=‘pjdt in projectdatas‘>{{pjdt.name}}</div>
  </div>
  <div class=‘people-content‘>
    <div class=‘drag-div‘ v-for=‘(ppindex,ppdt) in peopledata‘ @drop=‘drop($event)‘ @dragover=‘allowDrop($event)‘>
      <div class=‘select-project-item‘>
        <label class=‘drag-people-label‘>{{ppdt.name}}:</label>
      </div>
    </div>
  </div>
</div>
</template>

<div class=‘select-item‘ draggable=‘true‘ @dragstart=‘drag($event)‘ v-for=‘pjdt in projectdatas‘>{{pjdt.name}}</div>

在这行代码中小颖在绑定dragstart事件时,drag($event)写法和js写法不一样,如果你在vue中绑定事件时要传 ‘event‘,你不能像js那种格式去写 ,比如:@dragstart=‘drag(event)‘  这个写的话你在drag方法中获取到的event是  undefined,因为它把   @dragstart=‘drag(event)‘  中的event当成了一个变量,而该变量并没有在data中定义所以就是 undefined.早上小颖就碰到过此坑.所以切记格式是介个酱紫的:  @dragstart=‘drag($event)‘

js代码:

 

<script>
let dom = null
export default {
  components: {
  },
  ready: function() {
  },
  methods: {
    drag:function(event){
       dom = event.currentTarget
    },
    drop:function(event){
      event.preventDefault();
      event.target.appendChild(dom);
    },
    allowDrop:function(event){
      event.preventDefault();
    },
  },
  data() {
    return {
      projectdatas:[{
        id:1,
        name:葡萄,
      },{
        id:2,
        name:芒果,
      },{
        id:3,
        name:木瓜,
      },{
        id:4,
        name:榴莲,
      }],
      peopledata:[{
        id:1,
        name:小颖,
      },{
        id:2,
        name:hover,
      },{
        id:3,
        name:空巢青年三 ,
      },{
        id:3,
        name:一丢丢,
      }]
    }
  }
}
</script>

 

页面效果就是介个酱紫的:

技术分享

 

Vue.js学习笔记(8)拖放

原文:http://www.cnblogs.com/yingzi1028/p/5852671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!