微信小程序自定义多选事件的实现代码


Posted in Javascript onMay 17, 2018

要实现下图的效果(自定义多选单选),大多数公司项目的多选框都是自己设计的,所以用原生标签或者组件是不可行的,最简单的是自己绑定事件,然后切换选择和未选择的图片。而小程序和vue一样是没法操作dom的,所以要利用数组的下标和自定义属性来进行三元判断。

微信小程序自定义多选事件的实现代码

直接上代码:

wxml:

<view class="sel-box">
   /**用wx:for来进行列表渲染**/
  <view wx:for="{{repContent}}" class="multi-selection">
   <text>{{item.message}}</text>
   /**利用数组的下标index来进行判断是哪个的事件**/
   <image src="{{selectIndex[index].sureid? hasSelect : noSelect}}" class="multi-img" data-selectIndex="{{index}}" bindtap="selectRep" />
  </view>
 </view>

js:

Page({
 /**
  * 页面的初始数据
  */
 data: {
  noSelect: 'https://xxxxx/ic_report_nor@2x.png',
  hasSelect: 'https://xxxxx/ic_check_ele@2x.png',
  repContent: [{ message: '广告内容' }, { message: '不友善内容' }, { message: '垃圾内容' }, { message: '违法违规内容' }, { message: '其他' }],
  selectIndex: [
   { sureid: false },
   { sureid: false },
   { sureid: false },
   { sureid: false },
   { sureid: false },
  ],
 },

 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
 
 },

 selectRep:function(e){
  let index = e.currentTarget.dataset.selectindex; //当前点击元素的自定义数据,这个很关键
  let selectIndex = this.data.selectIndex;  //取到data里的selectIndex
  selectIndex[index].sureid = !selectIndex[index].sureid;  //点击就赋相反的值
  this.setData({
   selectIndex: selectIndex  //将已改变属性的json数组更新
  })
 }
})

currentTarget::事件绑定的当前组件。

dataset:在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.currentTarget.dataset 中会将连字符转成驼峰elementType。

开始入门学习小程序的,看官方文档就好了。

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

Javascript 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
Script的加载方法小结
Jan 12 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
Oct 12 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
详解如何在vue项目中引入elementUI组件
Feb 11 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 #Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 #Javascript
vue 路由嵌套高亮问题的解决方法
May 17 #Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 #Javascript
结合Vue控制字符和字节的显示个数的示例
May 17 #Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 #Javascript
AngularJS实现的base64编码与解码功能示例
May 17 #Javascript
You might like
php cookie的操作实现代码(登录)
2010/12/29 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
清空上传控件input file的值
2010/07/03 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
总裁岗位职责
2013/12/04 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
党员个人剖析材料
2014/09/30 职场文书
经理助理岗位职责
2015/02/02 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技