热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序实现给循环列表点击添加类(单项和多项)

在微信小程序里面没有DOM对象,不能操作DOM.所有的操作通过数据来实现,下面主要实现了给循环列表点击添加类的操作一、单项目标需求:实现下图,给点击的view增加类,每次只

在微信小程序里面没有DOM对象, 不能操作DOM. 所有的操作通过数据来实现,下面主要实现了给循环列表点击添加类的操作

一、单项

目标需求:实现下图,给点击的view增加类,每次只能选择一个。



主要思路:给点击的view增加类,依靠点击的index对state进行赋值。如果相同时,给该view增加类。

实现代码

.wxml文件

1 
 2   
 3     
 4       
 5         {{item.data_name}}
 6         {{item.name}}
 7       
 8       
 9   
10 


.wxss文件

1 .appointent-date-div{
 2   display:inline-block;
 3   width:20%;
 4   text-align: center;
 5   margin-top: 30rpx;
 6 }
 7 .flex-item{
 8   display: inline-block;
 9   width:96rpx;
10   height: 88rpx;
11   font-size: 26rpx;
12   border:2rpx solid #999;
13   text-align: center;
14   border-radius: 10rpx;
15   color: #999;
16   cursor: pointer;
17   line-height: 30rpx;
18 }
19 .data_name{
20   font-size: 36rpx;
21   line-height: 52rpx;
22   
23 }
24 .active-tag .flex-item{
25   background: #c8321e;
26   color:#fff;  
27   border:1rpx solid #fff;
28 }


.js文件

1 Page({
 2  3 /**
 4    * 页面的初始数据
 5 */  6   data: {
 7     dates: [
 8       { "data_name": "30", "name": "十三"},
 9       { "data_name": "1", "name": "十四"},
10       { "data_name": "2", "name": "十五"},
11       { "data_name": "3", "name": "十六"},
12       { "data_name": "4", "name": "十七"},
13       { "data_name": "5", "name": "十八"},
14       { "data_name": "6", "name": "十九"},
15       { "data_name": "7", "name": "二十"},
16       { "data_name": "8", "name": "廿一"},
17       { "data_name": "9", "name": "廿二"},
18       { "data_name": "10", "name": "廿三"},
19       { "data_name": "11", "name": "廿四"},
20       { "data_name": "12", "name": "廿五"},
21       { "data_name": "13", "name": "廿六"},
22       { "data_name": "14", "name": "廿七"}
23     ],
24     state:''
25   },
26 //选择日期后加样式 27   select_date: function (e) {
28 this.setData({
29       state: e.currentTarget.dataset.key,
30     });
31   },
32 })


二,多项

目标需求:实现下图,给点击的view增加类,再次点击时取消,可以多项选择。



主要思路

给dates数组增加一个属性state, 1表示状态选中,0表示未选中,每次点击时修改active的值。


实现代码:

.wxml文件

1 
2     
3       
4         {{item.data_name}}
5         {{item.name}}
6       
7       
8   

.wxss文件

1 .appointent-date{
 2   padding:10rpx 30rpx 40rpx 30rpx;
 3   background: #fff;
 4   box-sizing: border-box;
 5 }
 6 .appointent-date-div{
 7   display:inline-block;
 8   width:20%;
 9   text-align: center;
10   margin-top: 30rpx;
11 }
12 .flex-item{
13   display: inline-block;
14   width:96rpx;
15   height: 88rpx;
16   font-size: 26rpx;
17   border:2rpx solid #999;
18   text-align: center;
19   border-radius: 10rpx;
20   color: #999;
21   cursor: pointer;
22   line-height: 30rpx;
23 }
24 .data_name{
25   font-size: 36rpx;
26   line-height: 52rpx;
27   
28 }
29 .active-tag .flex-item{
30   background: #c8321e;
31   color:#fff;  
32   border:1rpx solid #fff;
33 }


.js文件

1 Page({
 2  3 /**
 4    * 页面的初始数据
 5 */  6   data: {
 7     dates: [
 8       { "data_name": "30", "name": "十三", "state": 0 },
 9       { "data_name": "1", "name": "十四", "state": 0 },
10       { "data_name": "2", "name": "十五", "state": 0 },
11       { "data_name": "3", "name": "十六", "state": 0 },
12       { "data_name": "4", "name": "十七", "state": 0 },
13       { "data_name": "5", "name": "十八", "state": 0 },
14       { "data_name": "6", "name": "十九", "state": 0 },
15       { "data_name": "7", "name": "二十", "state": 0 },
16       { "data_name": "8", "name": "廿一", "state": 0 },
17       { "data_name": "9", "name": "廿二", "state": 0 },
18       { "data_name": "10", "name": "廿三", "state": 0 },
19       { "data_name": "11", "name": "廿四", "state": 0 },
20       { "data_name": "12", "name": "廿五", "state": 0 },
21       { "data_name": "13", "name": "廿六", "state": 0 },
22       { "data_name": "14", "name": "廿七", "state": 0 }
23     ]
24   },
25 //选择日期后加样式 26   select_date: function (e) {
27 var index = e.currentTarget.dataset.key;
28 if (this.data.dates[index].state == 1) {
29 this.data.dates[index].state = 0;
30     } else if (this.data.dates[index].state == 0) {
31 this.data.dates[index].state = 1;
32     }
33 this.setData({
34       dates: this.data.dates,
35     });
36   },
37 })


本文作者:wxw婉 
原文地址: 微信小程序实现给循环列表点击添加类(单项和多项)-教程-小程序社区-微信小程序-微信小程序开发社区-小程序开发论坛-微信小程序联盟

推荐阅读
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 微信公众号推送模板40036问题
    返回码错误码描述说明40001invalidcredential不合法的调用凭证40002invalidgrant_type不合法的grant_type40003invalidop ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
author-avatar
ZZDXP
学 無
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有