vue使用drag与drop实现拖拽的示例代码

在功能中有一项是需要实现拖拽的。虽然最终项目没有采取这样的拖拽方式,但是,当初也是费了九牛二虎之力完成了这个功能。增加了对函数的更深理解。下面就再重现一下代码。

下面是代码片段:

<div v-if="!typeChange" draggable="true" @dragstart="drag($event)" @dragover="allowDrop($event)"> <!-- 面板内容 --> <div :data="favPanelAllData" v-if="foldDone"> <favPanel v-for="item in favPanelAllData" v-if="item.id===1" :favTitle="item.title" renameText="更名" foldText="折叠" unfoldText="展开" :favListData="item.content" draggable="true" @dragstart="drag($event)"> <ul> <li :favCommonList1="item.content"></li> </ul> <!-- <favPopPanel :show="popShow" @onHide="popShow = false"></favPopPanel> --> <!-- <div :favListData="item.favListData"></div> --> </favPanel> </div> <div :data="favPanelAllData"> <favFooter> <el-button type="primary" @click="addFoldFuc">新建文件夹</el-button> <el-button-group> <el-button @click="foldFuc">全部折叠</el-button> <el-button @click="foldFuc">全部展开</el-button> </el-button-group> </favFooter> </div> </div>

另一段代码:

<div :data="favPanelAllData" draggable="true" ondragstart="drag(event)"> <favPanel v-for="item in favPanelAllData" v-if="item.id===2" :favTitle="item.title" renameText="更名" foldText="没我" unfoldText="没你" :favListData="item.content"> <ul> <li :favListData="item.content" :if="!foldDone"></li> </ul> </favPanel> </div>

function部分

drag(event) { dom = event.currentTarget }, drop(event) { event.preventDefault() event.target.appendChild(dom) }, allowDrop(event) { event.preventDefault() }

然后,drag与drop系统的研究明天再说。

这样写的坏处是什么,还有为什么不采取这种方法实现拖拽。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyggjj.html