微信小程序开发教程(7)- 小程序中的事件绑定
一、什么是事件绑定
事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。
二、小程序中常用的事件
1、对象属性简介
当事件回调触发的时候,会收到一个事件对象的event,事件对象详细属性如下所示:
target和currentTarget的区别,target是触发该事件的源头组件,而currentTarget则是当前事件所绑定的组件,例如:
<view bind:tap="showMsg"> <button>测试按钮</button> </view>
点击内容按钮时,点击事件会以冒泡的方式向外扩散,也会触发外层view的tab事件处理函数。此时,对于外层的view来说,e.target指向的是触发事件的源头组件,因此,e.target是内部的按钮组件。e.currentTarget指向的是当前正在触发事件的那个组件,因此,e.currentTarget是当前的view组件。
2、bindtap语法格式
在小程序中,不存在Html中的onclick鼠标点击事件,而是通过tap事件来响应用户的触摸行为。通过bindtap,可以为组件绑定tap触摸事件,语法如下:
<button bind:tap="showMsg">测试按钮</button>
Page({ showMsg(event) { console.log(event) } })
3、事件处理函数中为data中的数据赋值
通过调用this.setData(dataObject)方法,可以给页面data中的数据重新赋值,代码如下:
Page({ data:{ count:0, }, btnTapHandler(e) { console.log(e) this.setData({ count:this.data.count + 1, }) } })
4、事件传参
小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数,如下面代码将不能被正常执行
因为程序会把bindtap的属性值,统一当做事件名称来处理,相当于要调用一个名称为btnHandler(123)的处理函数。
可以为组件提供data-*自定义属性传参,其中*代表的是参数的名字,代码如下:
<button bindtap="btnHandler" data-info="{{2}}">事件参数</button>
代码中info会被解析为参数的名字,数值2会被解析为参数的值。
在事件处理函数中可以通过event.target.dataset.参数名即可获取到具体参数的值,代码如下:
btnHandler(event){ console.log(event.target.dataset.info) }
5、bindinput语法格式
在小程序中,通过input事件来响应文本框的输入事件,语法格式如下:
<input bindinput="inputHandler"/>
inputHandler(e){ console.log(e.detail.value) }
猜您可能还喜欢
- 微信小程序开发教程(3)- 小程序项目目录结构及页面构成详解(263)
- 微信小程序开发教程(8)- 小程序flex布局详解(231)
- 微信小程序开发教程(7)- 小程序中的事件绑定(224)
- 微信小程序开发教程(1)- 开发环境搭建(219)
- 微信小程序开发教程(5)- 小程序组件使用详解(219)
- 微信小程序开发教程(4)- 微信小程序页面wxml模板文件、wxss样式文件详解(219)
- 微信小程序开发教程(2)- 创建小程序项目(218)
- 微信小程序开发教程(5)- 小程序API使用详解(217)
- 微信小程序开发教程(6)- 小程序中的数据绑定(207)
- 分享一款免费的微信群活码、QQ群活码平台、短链平台-畅联活码(136)
评论列表
发表评论
文章分类
文章归档
阅读排行
- 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(12784)
- 2.Visual Studio 2017中安装visualSVN及使用详解(4885)
- 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(3783)
- 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3006)
- 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(2853)
- 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2718)
- 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2615)
- 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2586)
- 9. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2233)
- 10.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2202)