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


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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
Sep 02 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
JavaScript从原型到原型链深入理解
Jun 03 Javascript
jQuery中DOM常见操作实例小结
Aug 01 jQuery
vue element upload实现图片本地预览
Aug 20 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
详解JVM系列之内存模型
Jun 10 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下载xls文件(自己动手写的)
2014/04/18 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
flash 得到自身url参数的代码
2009/11/15 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
大学生职业生涯设计书
2014/01/02 职场文书
办公室副主任职责范本
2014/03/08 职场文书
工作评语大全
2014/04/26 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2014年个人年终总结
2015/03/09 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书