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


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 24 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 Javascript
用jquery和json从后台获得数据集的代码
Nov 07 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
AngularJS中重新加载当前路由页面的方法
Mar 09 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
js实现无刷新监听URL的变化示例代码详解
Jun 03 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
js实现炫酷光感效果
Sep 05 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 柱状图实现代码
2009/12/04 PHP
php中namespace及use用法分析
2016/12/06 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python列表append和+的区别浅析
2015/02/02 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
周年庆典邀请函范文
2014/01/24 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
结婚周年感言
2014/02/24 职场文书
工会主席事迹材料
2014/06/03 职场文书
营销团队口号
2014/06/06 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
2014年科协工作总结
2014/12/09 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
学习与创新自我评价
2015/03/09 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书