如bindtap,,,,,当用户点击该组件的时间会在该页面临应的Page中找到响应的事务处理函数。。。
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
Page({
tapName: function(event) {
console.log(event)
}
})
{
"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,
}],
}
事务分为冒泡事务和非冒泡事务
WXML的冒泡事务列表:
| 类型 | 触发条件 |
|---|---|
| touchstart | 手指触摸行动最先 |
| touchmove | 手指触摸后移动 |
| touchcancel | 手指触摸行动被打断,,,,,如来电提醒,,,,,弹窗 |
| touchend | 手指触摸行动竣事 |
| tap | 手指触摸后马上脱离 |
| longtap | 手指触摸后,,,,,凌驾350ms再脱离 |
注:除上表之外的其他组件自界说事务都是非冒泡事务,,,,,如<form/>的submit事务,,,,,<input/>的input事务,,,,,<scroll-view/>的scroll事务,,,,,(详见各个组件)
事务绑定的写法同组件的属性,,,,,以key、value的形式。。。
bind或catch开头,,,,,然后跟上事务的类型,,,,,如bindtap, catchtouchstart
bind事务绑定不会阻止冒泡事务向上冒泡,,,,,catch事务绑定可以阻止冒泡事务向上冒泡。。。
如在下边这个例子中,,,,,点击inner view会先后触发handleTap3和handleTap2(由于tap事务会冒泡到middle view,,,,,而middle view阻止了tap事务冒泡,,,,,不再向父节点转达),,,,,点击middle view会触发handleTap2,,,,,点击outter view会触发handleTap1。。。
<view id="outter" bindtap="handleTap1">
outer view
<view id="middle" catchtap="handleTap2">
middle view
<view id="inner" bindtap="handleTap3">
inner view
</view>
</view>
</view>
如无特殊说明,,,,,当组件触发事务时,,,,,逻辑层绑定该事务的处理函数会收到一个事务工具。。。
BaseEvent基础事务工具属性列表:
| 属性 | 类型 | 说明 |
|---|---|---|
| type | String | 事务类型 |
| timeStamp | Integer | 事务天生时的时间戳 |
| target | Object | 触发事务的组件的一些属性值荟萃 |
| currentTarget | Object | 目今组件的一些属性值荟萃 |
| 属性 | 类型 | 说明 |
|---|---|---|
| detail | Object | 特另外信息 |
TouchEvent 触摸事务工具属性列表(继承 BaseEvent):
| 属性 | 类型 | 说明 |
|---|---|---|
| touches | Array | 触摸事务,,,,,目今停留在屏幕中的触摸点信息的数组 |
| changedTouches | Array | 触摸事务,,,,,目今转变的触摸点信息的数组 |
特殊事务:<canvas/>中的触摸事务不可冒泡,,,,,以是没有 currentTarget。。。
该页面翻开到触发事务所经由的毫秒数。。。
触发事务的源组件。。。
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 事务源组件的id |
| tagName | String | 目今组件的类型 |
| dataset | Object |
事务源组件上由data-开头的自界说属性组成的荟萃 |
事务绑定的目今组件。。。
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 目今组件的id |
| tagName | String | 目今组件的类型 |
| dataset | Object |
目今组件上由data-开头的自界说属性组成的荟萃 |
说明: target 和 currentTarget 可以参考上例中,,,,,点击 inner view 时,,,,,handleTap3 收到的事务工具 target 和 currentTarget 都是 inner,,,,,而 handleTap2 收到的事务工具 target 就是 inner,,,,,currentTarget 就是 middle。。。
在组件中可以界说数据,,,,,这些数据将会通过事务转达给 SERVICE。。。誊写方式:以data-开头,,,,,多个单词由连字符-链接,,,,,不可有大写(大写会自动转成小写)如data-element-type,,,,,最终在 event.target.dataset 中会将连字符转成驼峰elementType。。。
示例:
<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>
Page({
bindViewTap:function(event){
event.target.dataset.alphaBeta === 1 // - 会转为驼峰写法
event.target.dataset.alphabeta === 2 // 大写会转为小写
}
})
touches 是一个数组,,,,,每个元素为一个 Touch 工具(canvas 触摸事务中携带的 touches 是 CanvasTouch 数组)。。。 体现目今停留在屏幕上的触摸点。。。
| 属性 | 类型 | 说明 |
|---|---|---|
| identifier | Number | 触摸点的标识符 |
| pageX, pageY | Number | 距离文档左上角的距离,,,,,文档的左上角为原点 ,,,,,横向为X轴,,,,,纵向为Y轴 |
| clientX, clientY | Number | 距离页面可显示区域(屏幕除去导航条)左上角距离,,,,,横向为X轴,,,,,纵向为Y轴 |
| 属性 | 类型 | 说明 | 特殊说明 |
|---|---|---|---|
| identifier | Number | 触摸点的标识符 | |
| x, y | Number | 距离 Canvas 左上角的距离,,,,,Canvas 的左上角为原点 ,,,,,横向为X轴,,,,,纵向为Y轴 |
changedTouches 数据名堂同 touches。。。体现有转变的触摸点,,,,,如从无变有(touchstart),,,,,位置转变(touchmove),,,,,从有变无(touchend、touchcancel)。。。
自界说事务所携带的数据,,,,,如表单组件的提交事务会携带用户的输入,,,,,媒体的过失事务会携带过失信息,,,,,详见组件界说中各个事务的界说。。。
点击事务的detail 带有的 x, y 同 pageX, pageY 代表距离文档左上角的距离。。。
更多微信小程序开发教程,,,,,可以关注。。。
KESION pp电子软件
KESION pp电子软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,,,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。KESION 一直通过手艺立异,,,,,提供产品和服务,,,,,助力企业向数字化转型,,,,,通过科技驱动商业刷新,,,,,让商业变得更智慧!
小程序需要买服务器吗???谜底是肯定的,,,,,若是你想通过微信小程序来资助你实现更多的事情量,,,,,提高你企业的收益,,,,,那么为小程序购置服务器是必需的。。???墒枪赜谛矶嘈驴⒌闹行⌒推...
微信小程序码上线照旧很有意思的,,,,,“今天最先,,,,,不方了”一句简短的宣传语,,,,,宣告了小程序码的到来。。。相信看过小程序码的用户,,,,,都会发明它要例如形的更雅观。。。可是小程序码除了美...