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


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计数器代码
Nov 04 Javascript
JavaScript库 开发规则
Jan 31 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
Jul 26 Javascript
JS 实现列表与多选框选择附预览动画
Oct 29 Javascript
详细解读AngularJS中的表单验证编程
Jun 19 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
Aug 03 Javascript
AngularJS 单元测试(一)详解
Sep 21 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
jQuery使用方法
Feb 04 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 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 win下Socket方式发邮件类
2009/08/21 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
使用jQuery同时控制四张图片的伸缩实现代码
2013/04/19 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
利用JS实现数字增长
2016/07/28 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
小试小程序云开发(小结)
2019/06/06 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
学习python的几条建议分享
2013/02/10 Python
学习python类方法与对象方法
2016/03/15 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
tensorflow更改变量的值实例
2018/07/30 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
大学生实习证明范本
2014/01/15 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
学雷锋宣传标语
2014/06/25 职场文书
2014年工程工作总结
2014/11/25 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
谢师宴学生答谢词
2015/09/30 职场文书