VUE: 移动端长按弹出确认删除地址
Posted awen71815iou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE: 移动端长按弹出确认删除地址相关的知识,希望对你有一定的参考价值。
收货地址的删除方式可能有很多种,我目前见过的暂时只有两种(1、在编辑页删除 2、长按某一条收货地址弹出是否删除地址)
在开发的项目上要求第二种删除方法,于是记录一下我写的代码 ~
1.首先,在移动端,手指点击一个元素,会经过:touchstart --> touchmove --> touchend -->click。
在temlate里面写长按事件(@touchstart.prevent:触摸开始 touchend.prevent:触摸结束,手指离开时)
<ul> <li v-for="(item,idx) in addressList" :key="idx" @touchstart.prevent="touchin(item)" @touchend.prevent="cleartime(item)"> <div> <p class="name">item.nickname <span>item.tel</span> </p> <div class="addrInfo"> <span class="span">item.areaId</span><span>item.address</span> </div> <p class="edit" @click="add(item)">编辑</p> </li>
</ul>
2.data里面的数据(为了方便给大家展示,写的是死数据)
data () return addressList: [ nickname:‘齐一‘, tel:15065124120, areaId: ‘某某省某某市某某区‘, address: ‘123路几座几号楼502‘, nickname:‘齐一‘, tel:15065124120, areaId: ‘某某省某某市某某区‘, address: ‘123路几座几号楼502‘ ]
3.1用js写方法(我这里引入了一个mint-ui的确认是否删除的弹窗 import MessageBox from ‘mint-ui‘)
methods: /* * 长按显示删除地址 */ touchin (item) console.log(item) // 再次清空定时器,防止重复注册定时器 clearInterval(this.loop) this.Loop = setTimeout(function () MessageBox.confirm(‘确认删除吗?‘).then(res => this.addressList.splice(item, 1) ).catch(() => ) .bind(this), 1000) , /* * 将每次手指移出之后将计时器清零 */ cleartime (idx) clearInterval(this.Loop)
3.2.这是我接好后台接口时候的数据,方便我自己看,你们看上面那个然后自己套数据就好了(当然不套自己项目的数据也是能实现功能的~)
methods: /* * 长按显示删除地址 */ touchin (item) console.log(item) // 再次清空定时器,防止重复注册定时器 clearInterval(this.loop) this.Loop = setTimeout(function () MessageBox.confirm(‘确认删除吗?‘).then(res => let _formData = cusmallToken: getStore(‘cusmallToken‘), addressId: item.id commonDkApiFun(_formData, ‘/ttmb/api/member/delAddress‘).then(res => if (res.data.ret === 0) this.addressList.splice(item, 1) ).catch(err => console.log(err) ) ).catch(() => ) .bind(this), 1000) , /* * 将每次手指移出之后将计时器清零 */ cleartime (idx) clearInterval(this.Loop)
以上是关于VUE: 移动端长按弹出确认删除地址的主要内容,如果未能解决你的问题,请参考以下文章