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


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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
js对象关系图 方便dom操作
Mar 18 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
Nov 08 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
jQuery基础知识小结
Dec 22 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
Mar 26 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
Jan 22 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 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 如何获取数组第一个值
2013/08/06 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
2014/10/17 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
Javascript的this详解
2019/03/23 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
python修改操作系统时间的方法
2015/05/18 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python try 异常处理(史上最全)
2019/03/07 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
中国最大的名表商城:万表网
2016/08/29 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
毕业自我鉴定
2013/11/05 职场文书
中学清明节活动总结
2014/07/04 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server