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


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 相关文章推荐
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
用jQuery中的ajax分页实现代码
Sep 20 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
window.onresize 多次触发的解决方法
Nov 08 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
May 31 Javascript
Node.js connect ECONNREFUSED错误解决办法
Sep 15 Javascript
ajax实现动态下拉框示例
Jan 10 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
浅谈php扩展imagick
2014/06/02 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
Python实现曲线点抽稀算法的示例
2017/10/12 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
司机检讨书
2014/02/13 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
暂停营业通知
2015/04/25 职场文书
音乐研修感悟
2015/11/18 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
MySQL中order by的执行过程
2022/06/05 MySQL