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


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 相关文章推荐
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 Javascript
学习jQuey中的return false
Dec 18 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
Nov 28 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
微信 jssdk 签名错误invalid signature的解决方法
Jan 14 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
Vue Components 数字键盘的实现
Sep 18 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
js在HTML的三种引用方式详解
Aug 29 Javascript
微信小程序基础教程之echart的使用
Jun 01 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
PHP函数utf8转gb2312编码
2006/12/21 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
javascript 写类方式之四
2009/07/05 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
js中url对象化管理分析
2017/12/29 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
python 实现对文件夹内的文件排序编号
2018/04/12 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
python 实现视频 图像帧提取
2019/12/10 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
员工生日会策划方案
2014/06/14 职场文书
新郎答谢词
2015/01/04 职场文书
2016年记者节感言
2015/12/08 职场文书
公司晚会主持词
2019/04/17 职场文书
优秀大学生申请书
2019/06/24 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
24年收藏2000多部退役军用电台
2022/02/18 无线电