微信小程序全选多选效果实现代码解析


Posted in Javascript onJanuary 21, 2020

这篇文章主要介绍了微信小程序全选多选效果实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

效果图:

微信小程序全选多选效果实现代码解析

wxml代码:

<view class="memberList">
 <view class="allSelect_box" bindtap='selectAll'>
  <checkbox class="checkbox" checked="{{selectilall}}"/>
  <text class="allSelect">全选</text>
 </view>
 <view wx:for="{{list}}">
  <view class="member_box" data-index="{{index}}" data-name="{{item.id}}" bindtap='select'>
   <checkbox class="checkbox" checked="{{item.checked}}"/>
   <image src="../../assets/img/user_img.jpg" mode="widthFix" class="avatar"></image>
   <view>
    <view class="applicant_name">汪小涵 <text>管理员</text> </view>
    <view class="approval_state">总监</view>
   </view>
  </view>
 </view>
</view>

wxss代码:

.memberList{
 background:#fff;
 padding:0 35rpx 0 28rpx;
}
.allSelect_box{
 line-height:90rpx;
 border-bottom:1rpx solid #F5F5F5;
}
.checkbox{
 transform: scale(0.7,0.7);
}
.member_box .checkbox{
 margin-top: 15rpx;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
 color:#fff;
 background: #6669e3;
 border-color:#6669e3;
}
.allSelect{
 margin-left:15rpx;
 vertical-align:middle;
}
.member_box{
 padding-bottom:30rpx;
 display: flex;
 border-bottom:2rpx solid #EBEBEB;
 padding:20rpx 0 20rpx 0;
}
.avatar{
 width:100rpx;
 border-radius:50%;
 margin-left:15rpx;
}
.applicant_name{
 font-size:34rpx;
 padding:0 0 15rpx 30rpx;
}
.applicant_name text{
 color:#fff;
 background:#6669e3;
 font-size:28rpx;
 padding:5rpx 10rpx;
 border-radius:10rpx;
 margin-left:15rpx;
}
.approval_state{
 color:#8D8D8D;
 font-size:28rpx;
 padding-left: 30rpx;
}

js代码:

data: {
  list: [
   { id: 1, name: 1, checked: false },
   { id: 2, name: 2, checked: false },
   { id: 3, name: 3, checked: false },
   { id: 4, name: 4, checked: false },
  ],
  selectilall: false
 },
//单选
 select: function (e) {
  let selectValue = e.currentTarget.dataset.name
  let index = e.currentTarget.dataset.index;
  let list = this.data.list
  let newli = 'list[' + index + '].checked';
  this.setData({
   [newli]: !this.data.list[index].checked
  })
  let num = 0;
  for(var i=0;i<this.data.list.length;i++){
   if(this.data.list[i].checked){
    num++;
   }
  }
  if(num == this.data.list.length){
   this.setData({
    selectilall: true
   })
  }else{
   this.setData({
    selectilall: false
   })
  }
 },
 //全选,取消全选
 selectAll: function (e) {
  let list = this.data.list;
  let selectilall = this.data.selectilall;
  if (selectilall == false) {
   for (let i = 0; i < list.length; i++) {
    let newli = 'list[' + i + '].checked';
    this.setData({
     [newli]: true,
     selectilall: true
    })
   }
  } else {
   for (let i = 0; i < list.length; i++) {
    let newli = 'list[' + i + '].checked';
    this.setData({
     [newli]: false,
     selectilall: false
    })
   }
  }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
初学JavaScript_03(ExtJs Grid的简单使用)
Oct 02 Javascript
收集的一些Array及String原型对象的扩展实现代码
Dec 05 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
jquery获取复选框被选中的值
Apr 10 Javascript
使用JavaScript链式编程实现模拟Jquery函数
Dec 21 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
jquery+Jscex打造游戏力度条
Sep 12 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
Feb 19 Javascript
pm2启动ssr失败的解决方法
Jun 29 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
vue如何清除浏览器历史栈
May 25 Vue.js
js判断在哪个浏览器打开项目的方法
Jan 21 #Javascript
浅谈Vue.use到底是什么鬼
Jan 21 #Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 21 #Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 #Javascript
python虚拟环境 virtualenv的简单使用
Jan 21 #Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 #Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 #Javascript
You might like
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
js 编写规范
2010/03/03 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
为Python的web框架编写前端模版的教程
2015/04/30 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
python设置随机种子实例讲解
2019/09/12 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python实现从wind导入数据
2019/12/03 Python
详解python itertools功能
2020/02/07 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
UNIX文件系统常用命令
2012/05/25 面试题
项目经理聘任书
2014/03/29 职场文书
机关工会工作总结2015
2015/05/26 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android