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


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 相关文章推荐
用JavaScript隐藏控件的方法
Sep 21 Javascript
JavaScript 组件之旅(一)分析和设计
Oct 28 Javascript
JavaScript聚焦于第一个字段的代码
Oct 15 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
JS截取url中问号后面参数的值信息
Apr 29 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
jQuery简单实现验证邮箱格式
Jul 15 Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 Javascript
JS的深浅复制详细
Oct 16 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/08/05 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
JQuery写动态树示例代码
2013/07/31 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
Python tkinter模版代码实例
2020/02/05 Python
python爬虫用mongodb的理由
2020/07/28 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
公益广告语集锦
2014/03/13 职场文书
售后服务承诺书模板
2014/05/21 职场文书
2014年教学工作总结
2014/11/13 职场文书
世界地球日活动总结
2015/02/09 职场文书
大学生入党自荐书
2015/03/05 职场文书
光荣之路观后感
2015/06/12 职场文书
python实现三次密码验证的示例
2021/04/29 Python
详解Redis瘦身指南
2021/05/26 Redis
python标准库ElementTree处理xml
2022/05/20 Python