时间:2022-06-02 10:04:43 | 栏目:vue | 点击:次
在实现一个移动端项目的时候,根据产品需求,要实现一个既能增加删除又可以拖拽调换位置的效果,然后我使用了draggable组件,然后发现放到手机上的时候苹果(ios)手机可以正常使用,但是鸿蒙系统的手机(例如华为pro40)有些是不可以正常拖拽、增加和删除,只能一开始正常操作两三个,然后后面就怎么点都没有什么反应。通过多次尝试和查找方法,最终找到了解决办法,我在这里总结一下。
只需要在设置handle属性就可以了,vuedraggable的文档中有说明 options 配置项已经不在使用,所以我们直接将handle单独拿出来使用即可,像这样:handle="'.defaultTypeTag'"
,.defaultTypeTag
是要拖拽的块的类名,要注意的是需要做点击事件的项不能包含在这个类名里面,不然会无法触发点击事件。
这里只贴出html代码,js相关代码逻辑直接根据需求处理即可。
1、安装和引入使用
// 安装 npm install vuedraggable // 引入使用 import draggable from 'vuedraggable'
2、对应的html代码
<draggable class="list-group list-group-default" tag="ul" v-model="removetTypeList" :handle="'.defaultTypeTag'" v-bind="dragOptions" @start="isDragging = true" @update="updateDefaultTypeList" @end="isDragging = false" > <transition-group type="transition" name="flip-list"> <li v-for="(v,i) in removetTypeList" :key="i"> <div class="defaultTypeTag"> <img :src="v.icon" alt="" class="img"> <p class="p">{{v.classifyName.substring(0,5)}}<span v-if="v.classifyName.length>5">...</span></p> </div> <i class="removeTypeList" @click.stop.prevent="handRemoveTypeChange(v,i)"></i> </li> </transition-group> </draggable>