微信小程序外卖选购页实现切换分类与数量加减功能案例

 更新时间:2019年01月15日 08:42:54   作者:第九程序  
这篇文章主要介绍了微信小程序外卖选购页实现切换分类与数量加减功能,结合具体实例形式分析了微信小程序状态记录、判定及数值运算相关操作技巧,需要的朋友可以参考下

本文实例讲述了微信小程序外卖选购页实现切换分类与数量加减功能。分享给大家供大家参考,具体如下:

关于微信小程序外卖界面实现选购切换分类与数量加减功能开发步骤:

效果图

实现以下功能

一、 点击分类项,切换右边的食品,并高亮自身

这个实现比较简单,给一个states数组,用于记录每一项分类的状态,点击设为true,wxml渲染时三目运算判断即可。

categoryStates = categoryStates.map(function (item, i) {
if (index == i) {
item = true;
} else {
item = false;
}
return item;
});

相应的wxml文件

class="{{categoryStates[index] ? 'category-item-active' : ''}}"

二、 加减按钮

初始只有一个加号

点击加号后,相应商品数量+1,并出现减号

减至0时,减号消失,连同数量值

设计数组结构

cartData: {},它的键是Food表的objectId,值是数量。

以下是js代码实现

add: function (e) {
// 所点商品id
var foodId = e.currentTarget.dataset.foodId;
console.log(foodId);
// 读取目前购物车数据
var cartData = that.data.cartData;
// 获取当前商品数量
var foodCount = cartData[foodId] ? cartData[foodId] : 0;
// 自增1后存回
cartData[foodId] = ++foodCount;
// 设值到data数据中
that.setData({
cartData: cartData
});
}

在wxml文件中绑定数据如下

<view class="stepper">
<!-- 减号 -->
<view class="symbol subtract" wx:if="{{cartData[item.objectId]}}">-</view>
<!-- 数量 -->
<view class="value">{{cartData[item.objectId]}}</view>
<!-- 加号 -->
<view class="symbol add" bindtap="add" data-food-id="{{item.objectId}}">+</view>
</view>

上述代码中,通过wx:if判断当前商品的数量是否存在,无则不显示减号按钮;而在加号按钮旁要显示的数量就是{{cartData[item.objectId]}};点击事件传递的foodId就是{{item.objectId}}

减法按钮类似

subtract: function (e) {
// 所点商品id
var foodId = e.currentTarget.dataset.foodId;
// 读取目前购物车数据
var cartData = that.data.cartData;
// 获取当前商品数量
var foodCount = cartData[foodId];
// 自减1
--foodCount;
// 减到零了就直接移除
if (foodCount == 0) {
delete cartData[foodId]
} else {
cartData[foodId] = foodCount;
}
// 设值到data数据中
that.setData({
cartData: cartData
});
}

减法与加法基本类似,值得一提的是,减法要判断非负的合法性,所以将自减至零时,直接将元素通过delete操作移除,省去后续提交购物车遍历汇总的非零判断的烦琐。

Todo List
购物车动画
购物车逻辑
提交数据到后端存储

希望本文所述对大家微信小程序开发有所帮助。

相关文章

  • 基于JavaScript 实现拖放功能

    基于JavaScript 实现拖放功能

    本文通过实例代码给大家介绍了JavaScript 实现拖放功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 原创javascript小游戏实现代码

    原创javascript小游戏实现代码

    javascript小游戏实现代码,喜欢用javascript实现游戏效果代码的朋友可以参考下。
    2010-08-08
  • 简单了解Javscript中兄弟ifream的方法调用

    简单了解Javscript中兄弟ifream的方法调用

    这篇文章主要介绍了简单了解Javscript中兄弟ifream的方法调用文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • JS中JSON对象和String之间的互转及处理技巧

    JS中JSON对象和String之间的互转及处理技巧

    JSON:JavaScript 对象表示法(JavaScript Object Notation),其实JSON就是一个JavaScript的对象(Object)而已。接下来通过本文给大家介绍JS中JSON对象和String之间的互转及处理技巧,需要的朋友一起学习吧
    2016-04-04
  • js中获取jsp表单中radio类型的值简单实例

    js中获取jsp表单中radio类型的值简单实例

    下面小编就为大家带来一篇js中获取jsp表单中radio类型的值简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • jsTree使用记录实例

    jsTree使用记录实例

    本文通过实例给大家详细介绍了jstree的使用技巧,需要的朋友可以参考下本文
    2016-12-12
  • 如何让每个Http请求都自动带上token

    如何让每个Http请求都自动带上token

    这篇文章主要介绍了如何让每个Http请求都自动带上token问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • QT与javascript交互数据的实现

    QT与javascript交互数据的实现

    本文主要介绍了QT与javascript交互数据的实现,主要包括数据从QT流向JS以及数据从JS流向QT的几种方法,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • javascript的函数

    javascript的函数

    javascript的函数...
    2006-07-07
  • javascript之卸载鼠标事件的代码

    javascript之卸载鼠标事件的代码

    javascript之卸载鼠标事件的代码...
    2007-05-05

最新评论