修改下面代码实现购物车商品数量修改block wxfor=list wxkey=index!-- 为了滑动删除的时候 操作的是当前的list容器不是所有的active都改变变active给list数组每一项对象添加属性 -- view data-index=indexclass=list itemactivetouch-move bindtouchstart=touchStart bindt
<view class='img'>
<image src='{{item.smallPic}}'></image>
</view>
<view class='content'>
<view class="desc">{{item.title}}</view>
<view class="bottom">
<text class="money">¥{{item.price}}</text>
<view class="edit">
<text class="reduce" bindtap='reduce' data-index='{{index}}'>-</text>
<text class='num'>{{item.num}}</text>
<text class="add" bindtap='add' data-index='{{index}}'>+</text>
</view>
</view>
</view>
</view>
<view class="delete" bindtap='delete' data-index='{{index}}'>删除</view>
// pages/myCart/myCart.js Page({
/**
- 页面的初始数据 */ data: { // active:false,//默认是不选中 不出现删除 // isSeleted:false,//当前的这个选项是否选中---默认不选中 isSeletedAll: false, //全选状态 startX: '', //开始的位置坐标点x轴 list: [], //购物车列表信息 num: 0, //选中的个数 num>0 控制结算的状态的颜色 totalPrice: '0.00', //总价格 isShow: false, //控制结算的状态的颜色 }, //点击出现删除 demo: function () { this.setData({ active: !this.data.active }) }, //第一步:滑动出现删除-======================================================== touchStart: function (e) { // console.log(e); // console.log('startX开始位置',e.touches[0].clientX);
this.setData({
startX: e.touches[0].clientX
})
}, //移动事件-================================================================== touchMove: function (e) { // console.log('move',e.touches[0]) //每个元素list都有一个标识0-----滑动谁 获取是哪个list里面的item var index = e.currentTarget.dataset.index; console.log('滑动是第几个元素', index); var list = this.data.list; //获取购物车列表容器 //目的:进入移动后 把其他的所有的属性active=false 只是当前的true // for(var i=0;i<list.length;i++){ // list[i].active=false; // }
var startX = this.data.startX;
var moveX = e.touches[0].clientX;
if (moveX < startX) { //左滑
list[index].active = true; //给当前的元素赋值属性true
} else {
list[index].active = false;
}
//修改当前的list后---同步更新数据data里面的变量list
this.setData({
list: list
})
},
onLoad: function (options) { //获取数据 // this.getShop();//只执行一次 }
原文地址: https://www.cveoy.top/t/topic/fbUV 著作权归作者所有。请勿转载和采集!