关于清空购物车的实现思路
function cartRemove(){
$('.choose-content').on('click','.clear-car', function(){
// 移除购物车的选中项
$strTop.find('.choose-item').remove();
// 找到所有选项卡内容,赋给变量list
var list = window.food_spu_tags || [];
// 找到右侧选项卡放数量的div
var $counts = $('.count');
// 这里的list指的是左侧所有的选项卡内容
// item指list中的每个选项卡
list.forEach(function(item){
// item.spus指的是左侧每一个选项卡对应的右侧所有商品的内容信息
// _item是右侧每一条商品的数据
item.spus.forEach(function(_item){
// 后台数据设为0
_item.chooseCount = 0;
// 页面数据设为0
$counts.text(0);
})
// 改变总价,让总价为0
changeTotalPrice(0);
// 改变红点个数
changeDot();
});
});
}
在老师提供的源码shopBar.js里面加了这段代码。测试了一下可以实现效果,也暂时没发现BUG。
我的思路是移除购物车中的所选项,然后把界面和后台的每一条count数据设为0。
想问一下有什么方法可以达到不刷新页面,把所有的数据设置为初始值的效果…最开始围绕这个想法困了很久,还是没解决…然后想到用比较直接的方法循环遍历每个数据,把数据改为0。
如果有的话麻烦老师提供一个思路,或者用哪种方法可以达到重置页面的效果,或者有什么针对清空购物车这个功能,更好的解决方法……循环遍历还真是万能,只是感觉会很消耗性能…
辛苦老师解答。
正在回答 回答被采纳积分+1
我觉得我的方法比你更加简洁
//清空购物车
$('.cart-clear').on('click', function(e){
// 修改挂载到cart-item中的数据
// 获取cart-item标签。cart-item标签是我购物车中被选中的商品
var $item = $strTop.find('.cart-item');
//循环将所有被选中的商品的标签的chooseCount数据修改为零
for(var i=0; i < $item.length; i++){
console.log($item[i]);
//修改保存在cart-item标签的数据
$($item[i]).data('itemData').chooseCount = 0;
}
//修改后重新渲染一个页面
renderItems();
//修改后同时也需要联动!
$('.sidebar-item.active').click();
});
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星