@[TOC]vuedraggable插件实现拖动效果
前言:之前写代码时遇到个需求,拖动元素到指定区域时仍然保留原来的标签,并有标识。
以下是html原码:
小伙伴们记得在js里导入插件vuedraggable。
在拖动图片时还要保留原来的数据,我是直接在插件的源码里改的,
在插件的src目录下的vuedraggable.js文件里:350行 将如下代码注释:
// var oldIndex=this.context.index;
// this.spliceList(oldIndex,1);
// var removed = { element: this.context.element, oldIndex: oldIndex};
// this.resetTransitionData(oldIndex);
// this.emitChanges({removed: removed });
重新运行就实现了拖动后还能保留原来的数据。但是有的伙伴可能遇到的需求是
已经拖动过的标签如何给出标识并且不能重复拖动。这个很简单,
option配置里加的handle属性实现的效果时符合设置的元素属性才能拖动,就是说我这里允许拖动的是class名为delImg的子元素才能拖动。
在拖动完成时绑定的函数dragFunc里我们可以用event对象去直接修改拖动元素的class名,只要跟配置里的delImg不同就OK了。然后在css部分给你定义的元素新class名设置一些特别的样式就好,比如字体颜色,背景色,边框等。
**总结**:关于是否把vuedraggable插件的源码注释掉请伙伴们谨慎考虑,
如果项目需求都是要保留拖动的数据时再去动源码。