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


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 相关文章推荐
非常漂亮的JS代码经典广告
Oct 21 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
Jul 17 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
js实现仿爱微网两级导航菜单效果代码
Aug 31 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 Javascript
简单理解Vue条件渲染
Dec 03 Javascript
vue环境搭建简单教程
Nov 07 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
javascript实现倒计时关闭广告
Feb 09 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
小偷PHP+Html+缓存
2006/11/25 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python3实现mysql导出excel的方法
2019/07/31 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python中setuptools的作用是什么
2020/06/19 Python
用python写爬虫简单吗
2020/07/28 Python
PyTorch安装与基本使用详解
2020/08/31 Python
python爬取音频下载的示例代码
2020/10/19 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
年终考核评语
2014/01/19 职场文书
毕业设计论文评语
2014/12/31 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书