微信小程序之多列表的显示和隐藏功能【附源码】


Posted in Javascript onAugust 06, 2018

今天在项目碰到一个问题,之前在项目首页实现单列表的显示和隐藏,通过wx:if判断就可实现,现在要实现多列表的单项显示和隐藏功能应该如何实现呢?如果还用wx:if实现的话会出现点击一个列表项,多个列表同时显示和隐藏,明显不适合功能需求,然后简单地查了资料也没发现有类似的功能,最后思考一番后,慢慢地理清了思路...

效果图:

微信小程序之多列表的显示和隐藏功能【附源码】

实现思路:

  • 实现单个列表的显示和隐藏应该使用唯一元素让程序知道你应该显示和隐藏哪个列表项,可以用数据的id;
  • css中定义一个hidden{display:none}控制显示和隐藏,然后通过三元运算符来判断;
  • wxml定义一个点击事件来动态修改这个列表项的变量值。

功能实现:

好了,思路有了,就开始按照思路来用代码验证。果不其然,使用代码实现之后,发现自己的思路还是没错的。此功能点也可以应用到其它类似的列表的显示和隐藏中。

示例代码:

<!--pages/myOrder/myOrder.wxml-->
<view class='container'>
 <!-- 订单列表 -->
 <block wx:for-items="{{carInfoData}}">
 <view class='card b-shadow' bindtap='toggleBtn' id="{{item.id}}">
  <view class='nearCard-fl'>
  <image src='{{item.imgurl}}'></image>
  </view>
  <view class='nearCard-fr'>
  <view>日期:
   <text class='c-green'>{{item.useDate}}</text>
  </view>
  <view>车型:
   <text class='c-green'>{{item.cx}}</text>
  </view>
  <view>时长:
   <text class='c-green'>{{item.time}}</text>
  </view>
  <view>费用:
   <text class='c-green'>{{item.feiyong}}</text>
  </view>
  </view>
  <view class='down clearfix {{uhide==item.id?"":"hidden"}}'>
  <view class='ml30'>启用时间:2018.01.01 11:33</view>
  <view class='ml30'>结束时间:2018.01.01 11:33</view>
  <view class='ml30'>租赁地区:舟山市桃花岛景区海湾浪琴</view>
  <view class='feedBack'>意见反馈</view>
  </view>
 </view>
 </block>
</view>
// pages/myOrder/myOrder.js
Page({
 /**
 * 页面的初始数据
 */
 data: {
 uhide: 0
 },
 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 var that = this;
 var data = {
  "datas": [
  {
   "id": 1,
   "imgurl": "../../images/car.png",
   "useDate": "2017-12-22",
   "cx": "奇瑞EQ1",
   "time": "1小时",
   "feiyong": "20元"
  },
  {
   "id": 2,
   "imgurl": "../../images/car.png",
   "useDate": "2017-12-22",
   "cx": "奇瑞EQ1",
   "time": "1小时",
   "feiyong": "20元"
  },
  {
   "id": 3,
   "imgurl": "../../images/car.png",
   "useDate": "2017-12-22",
   "cx": "奇瑞EQ1",
   "time": "1小时",
   "feiyong": "20元"
  },
  {
   "id": 4,
   "imgurl": "../../images/car.png",
   "useDate": "2017-12-22",
   "cx": "奇瑞EQ1",
   "time": "1小时",
   "feiyong": "20元"
  }
  ]
 };
 //console.log(data.datas);
 //设置车辆展示信息
 that.setData({
  carInfoData: data.datas
 })
 },
 //点击切换隐藏和显示
 toggleBtn: function (event) { 
 var that = this;
 var toggleBtnVal = that.data.uhide;
 var itemId = event.currentTarget.id; 
 if (toggleBtnVal == itemId) {
  that.setData({
  uhide: 0
  })
 } else {
  that.setData({
  uhide: itemId
  })
 } 
 }
})

GitHub源码地址:小程序显示和隐藏

总结

以上所述是小编给大家介绍的微信小程序之多列表的显示和隐藏功能【附源码】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 图片缩放(按比例)控制代码
May 27 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
Jquery刷新页面背景图片随机变换的实现方法
Mar 15 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
jqTransform美化表单
Oct 10 Javascript
jQuery判断邮箱格式对错实例代码讲解
Apr 12 jQuery
详解vue-admin和后端(flask)分离结合的例子
Feb 12 Javascript
vue.js实现图书管理功能
Sep 24 Javascript
JavaScript随机数的组合问题案例分析
May 16 Javascript
vue实现放大镜效果
Sep 17 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
Apr 19 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 #Javascript
JavaScript选择排序算法原理与实现方法示例
Aug 06 #Javascript
ES6 中可以提升幸福度的小功能
Aug 06 #Javascript
原生JS实现的轮播图功能详解
Aug 06 #Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 #Javascript
animate.css在vue项目中的使用教程
Aug 05 #Javascript
iconfont的三种使用方式详解
Aug 05 #Javascript
You might like
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
php while循环控制的简单实例
2016/05/30 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python中functools模块的常用函数解析
2016/06/30 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
python使用tornado实现登录和登出
2018/07/28 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Pycharm Git 设置方法
2020/09/15 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
会计专业大学生求职信范文
2014/01/28 职场文书
课例研修方案
2014/05/31 职场文书
女生节标语
2014/06/26 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
Nginx快速入门教程
2021/03/31 Servers