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


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获取数组任意个不重复的随机数组元素
Mar 15 Javascript
用unescape反编码得出汉字示例
Apr 24 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 Javascript
AngularJS中$watch和$timeout的使用示例
Sep 20 Javascript
D3.js实现文本的换行详解
Oct 14 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
react+redux的升级版todoList的实现
Dec 18 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
vue 巧用过渡效果(小结)
Sep 22 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 curl参数的详解
2013/06/17 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
PHP中cookie知识点学习
2018/05/06 PHP
MSN消息提示类
2006/09/05 Javascript
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
员工培训心得体会
2013/12/30 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
教学质量月活动总结
2015/05/11 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android