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


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读取本地excel文档数据的代码
Nov 11 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
JavaScript插件化开发教程 (三)
Jan 27 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
flexslider.js实现移动端轮播
Feb 05 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 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横向重复区域显示二法
2008/09/25 PHP
php生成验证码函数
2015/10/20 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
Python探索之自定义实现线程池
2017/10/27 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
软件配置管理有什么好处
2015/04/15 面试题
财务会计应届生求职信
2013/11/24 职场文书
中国好声音广告词
2014/03/18 职场文书
文明村创建实施方案
2014/03/27 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
2014年应急工作总结
2014/12/11 职场文书
学前班学生评语
2014/12/29 职场文书
陪护人员误工证明
2015/06/24 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
javascript函数式编程基础
2021/09/15 Javascript