首页 > 代码库 > Vue.js学习笔记(8)拖放
Vue.js学习笔记(8)拖放
小颖在目前负责的项目中,负责给同事提供所需组件,在这期间,我们家大颖姐姐让我 写个拖拽组件,一开始我是用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 = nullexport 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)拖放
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。