微信小程序点击事件开发教程
2017-06-27 作者:wendy 阅读:3
小程序的开发步骤包括微信小程序点击事件的开发,但是关于点击事件,还有很多朋友表示不太清楚,今天小编就来为大家讲一讲微信小程序点击事件怎么开发。
微信程序 事件什么是事件事件是视图层到逻辑层的通讯式。事件可以将户的为反馈到逻辑层进处理。事件可以绑定在组件上,当达到触发事件,就会执逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如id, dataset, touches。事件的使式
在组件中绑定个事件处理函数。
如bindtap,当户点击该组件的时候会在该页对应的Page中找到相应的事件处理函数。
在相应的Page定义中写上相应的事件处理函数,参数是event。
Page({
tapName: function(event) {
console.log(event)
}})
可以看到log出来的信息致如下
{
"type": "tap",
"timeStamp":895,
"target": {
"id": "tapTest",
"dataset": {
"hi": "WeChat"
}
},
"currentTarget": {
"id": "tapTest",
"dataset": {
"hi": "WeChat"
}
},
"detail": {
"x":53,
"y":14
},
"touches": [{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14,
}],
"changedTouches": [{
"identifier":0,
"pageX":53,
"pageY":14,
"clientX":53,
"clientY":14,
}],
}
事件详解
事件分类
事件分为冒泡事件和冒泡事件
1. 冒泡事件:当个组件上的事件被触发后,该事件会向节点传递。2. 冒泡事件:当个组件上的事件被触发后,该事件不会向节点传递。WXML的冒泡事件列表:
类型
touchstart
touchmove
touchcancel
touchend
tap
longtap触发条件指触摸动作开始指触摸后移动指触摸动作被打断,如来电提醒,弹窗指触摸动作结束指触摸后马上离开指触摸后,超过350ms再离开
注:除上表之外的其他组件定义事件都是冒泡事件,如的submit事件,的input事件,的scroll事件,(详见各个)事件绑定
事件绑定的写法同组件的属性,以key、value的形式。
key以bind或catch开头,然后跟上事件的类型,如bindtap,catchtouchstartvalue是个字符串,需要在对应的Page中定义同名的函数。不然当触发事件的时候会报错。
bind事件绑定不会阻冒泡事件向上冒泡,catch事件绑定可以阻冒泡事件向上冒泡。
如在下边这个例中,点击inner view会先后触发handleTap3和handleTap2(因为tap事件会冒泡到middle view,middle view阻了tap事件冒泡,不再向节点传递),点击middle view会触发handleTap2,点击outter view会触发handleTap1。
outer view
middle view
inner view
事件对象
如特殊说明,当组件触发事件时,逻辑层绑定该事件的处理函数会收到个事件对象。
BaseEvent基础事件对象属性列表:
类型
String
Integer
Object
Object属性说明事件类型事件成时的时间戳触发事件的组件的些属性值集合当前组件的些属性值集合
CustomEvent 定义事件对象属性列表(继承 BaseEvent):
属性类型说明Object额外的信息
TouchEvent 触摸事件对象属性列表(继承 BaseEvent):
属性类型说明Array触摸事件,当前停留在屏幕中的触摸点信息的数组Array触摸事件,当前变化的触摸点信息的数组
特殊事件: 中的触摸事件不可冒泡,所以没有 currentTarget。type
通事件类型
timeStamp
该页打开到触发事件所经过的毫秒数。
target
触发事件的源组件。
类型说明
idString事件源组件的id
tagNameString当前组件的类型Object事件源组件上由data-开头的定义属性组成的集合属性currentTarget
事件绑定的当前组件。
类型说明
idString当前组件的id
tagNameString当前组件的类型Object当前组件上由data-开头的定义属性组成的集合说明: target 和 currentTarget 可以参考上例中,点击 inner view时,handleTap3 收到的事件对象 target 和 currentTarget 都是 inner, handleTap2 收到的事件对象 target 就是 inner,currentTarget 就是 middle。属性
dataset
在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。书写式:以data-开头,多个单词由连字符-链接,不能有写(写会动转成写)如data-element-type,最终在 event.target.dataset 中会将连字符转成驼峰elementType。例:
Page({
bindViewTap:function(event){
event.target.dataset.alphaBeta === 1 // - 会转为驼峰写法 event.target.dataset.alphabeta === 2 // 写会转为写
}
})
touches
touches 是个数组,每个元素为个 Touch 对象(canvas 触摸事件中携带的 touches是 CanvasTouch 数组)。 表当前停留在屏幕上的触摸点。
Touch 对象
属性
identifier
pageX,pageY
clientX,clientY类型说明Number触摸点的标识符 ,横向为X轴,Number距离档左上的距离,档的左上为原点纵向为Y轴XNumber距离页可显区域(屏幕除去导航条)左上距离,横向为轴,纵向为Y轴
CanvasTouch 对象
属性类型说明特殊说明
identifierNumber触摸点的标识符 Canvas 左上的距离,Canvas 的左上为原点 ,横向 x, yNumber距离为X轴,纵向为Y轴
changedTouches
changedTouches 数据格式同 touches。 表有变化的触摸点,如从变有(touchstart),位置变化(touchmove),从有变(touchend、touchcancel)。
detail
定义事件所携带的数据,如表单组件的提交事件会携带户的输,媒体的错误事件会携带错误信息,详见定义中各个事件的定义。
微信小程序点击事件怎么开发?具体流程和相关代码小编都在文中介绍得比较详细了,希望能够帮助到大家。更多相关资料请关注微信小程序素材网。
推荐阅读:
微信小程序点击事件是什么?怎么操作?
微信小程序点击事件处理与参数传递
微信小程序按钮点击事件,微信小程序按钮组件:button
相关推荐