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


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 相关文章推荐
基于jsTree的无限级树JSON数据的转换代码
Jul 27 Javascript
imgAreaSelect 中文文档帮助说明
Oct 08 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
jquery实现select选中行、列合计示例
Apr 25 Javascript
jquery常用方法及使用示例汇总
Nov 08 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
JavaScript绑定事件监听函数的通用方法
May 14 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
Dec 06 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
js实现计算器功能
Aug 10 Javascript
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建立Ftp连接的方法
2015/03/07 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
详解Python进程间通信之命名管道
2017/08/28 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
介绍一下#error预处理
2015/09/25 面试题
2015年乡镇工作总结范文
2015/04/22 职场文书
大学军训口号大全
2015/12/24 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
python使用glob检索文件的操作
2021/05/20 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL