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


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 06 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
javascript 控制input只允许输入的各种指定内容
Jun 19 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 Javascript
jquery滚动条插件(可以自定义)
Dec 11 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
Mar 01 Javascript
Vue Cli与BootStrap结合实现表格分页功能
Aug 18 Javascript
webpack 静态资源集中输出的方法示例
Nov 09 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 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中实现简单的ACL 完结篇
2011/09/07 PHP
php把session写入数据库示例
2014/02/26 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python3 单行多行万能正则匹配方法
2019/01/07 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
大学毕业自我评价
2014/02/02 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
小学优秀教师材料
2014/12/15 职场文书
2015年档案室工作总结
2015/05/23 职场文书
青年联谊会致辞
2015/07/31 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
基于redis+lua进行限流的方法
2022/07/23 Redis