找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

Coco-LG的学习笔记《一》事件

作者:模板之家 2018-1-26 15:52 335人关注

微信小程序的事件挺有意思。看了说明文档后发现它的功能很全,事件可以向父节点传递,而且打印这个事件的信息很透明,调试起来应该非常方便。 接下来把文档copy过来,原文地址

微信小程序的"事件"挺有意思。看了说明文档后发现它的功能很全,事件可以向父节点传递,而且打印这个事件的信息很透明,调试起来应该非常方便。

接下来把文档copy过来,原文地址:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html

 

什么是事件

  • 事件是视图层到逻辑层的通讯方式。
  • 事件可以将用户的行为反馈到逻辑层进行处理。
  • 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
  • 事件对象可以携带额外信息,如id, dataset, touches。

事件的使用方式

  • 在组件中绑定一个事件处理函数。

 

如bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数。


  1. <view id="tapTest" data-hi="MINA" bindtap="tapName"> Click me! </view>

  • 在相应的Page定义中写上相应的事件处理函数,参数是event。

	
  1. Page({
    tapName: function(event) {
    console.log(event)
    }
    })
    
可以看到log出来的信息大致如下:

{
"type": "tap",
"timeStamp": 1252,
"target": {
"id": "tapTest",
"offsetLeft": 0,
"offsetTop": 0,
"dataset": {
"hi": "MINA"
}
},
"currentTarget": {
"id": "tapTest",
"offsetLeft": 0,
"offsetTop": 0,
"dataset": {
"hi": "MINA"
}
},
"touches": [{
"pageX": 30,
"pageY": 12,
"clientX": 30,
"clientY": 12,
"screenX": 112,
"screenY": 151
}],
"detail": {
"x": 30,
"y": 12
}
}

 

事件详解

 

 

事件分类

 

事件分为冒泡事件和非冒泡事件:

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

WXML的冒泡事件列表:

 

类型 触发条件
touchstart 手指触摸
touchmove 手指触摸后移动
touchcancel 手指触摸动作被打断,如来电提醒,弹窗
touchend 手指触摸动作结束
tap 手指触摸后离开
longtap 手指触摸后,超过350ms再离开

 

注:除上表之外的其他组件自定义事件都是非冒泡事件,如

路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)