【微信小程序】wx事件绑定
1.什么是事件
事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为
,反馈到逻辑层进行业务的处理。
2.小程序中常用的事件
3.事件对象的属性列表
当事件回调触发的时候,会收到一个事件对象event,它的详细属性如下表所示
4.target和currentTarget的区别
target是触发该事件的源头组件,而currentTarget则是当前事件所绑定的组件。
举例如下:
5.bindtap的语法格式
在小程序中,不存在HTML中的onclick鼠标点击事件,而是通过 tap事件来响应用户的触摸行为。
通过bindtap,可以为组件绑定tap触摸事件,语法如下:
在页面的.js文件中定义对应的事件处理函数,事件参数通过形参event(一般简写成e)来接收:
6.在事件处理函数中为data中的数据赋新值
通过调用this.setData(dataObject)方法,可以给页面data中的数据重新赋值,
示例如下:
7.事件传参
小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。
例如,下面的代码将不能正常工作:
因为小程序会把 bindtap的属性值,统一当作事件名称来处理,相当于要调用一个名称为 btnHandler(123)的事件处理函数。
可以为组件提供data-*自定义属性传参,其中**代表的是参数的名字,示例代码如下:
最终:
info会被解析为参数的名字·
数值⒉会被解析为参数的值
在事件处理函数中,通过event.target.dataset.参数名 即可获取到具体参数的值,示例代码如下:
add(e){
this.setData({
count:e.target.dataset.count
})
},
8.bindinput的语法格式
在小程序中,通过input事件来响应文本框的输入事件,语法格式如下:
通过bindinput,可以为文本框绑定输入事件:
在页面的.js 文件中定义事件处理函数:
9.实现文本框和data之间的数据同步
实现步骤:
1:定义数据
2:渲染结构
3:美化样式
4:绑定input事件处理函数
//js:
Page({
data: {
count:0
},
inputNew(e){
this.setData({
count:e.detail.value
})
})
//wxml