• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 小程序开发基础篇之事件(9)

小程序开发基础篇之事件(9)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了小程序开发,事件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
前面说到,微信小程序框架是逻辑层与UI层分析的设计方式,这种设计方式需要解决两个问题

UI层响应逻辑层逻辑和数据的变化
UI层将用户的操作反馈到逻辑层

其中前面讲到的数据绑定解决了第一个问题,而事件则解决第二个问题

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

总结下来事件就是指发生了一些事情,通常是用户进行了一些操作,如点击某个按钮或在手机屏幕上滑动了手指。当事件发生时,框架会调用事件处理函数(如果有的话),这样就可以实现对用户操作的响应。

事件绑定

通过事件绑定来完成对用户操作的响应,比如要处理view标签的tap事件,在标签属性中添加bindtap = 'tapName', 然后在.js中添加tapName函数

//wxml
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

//.js
Page({
  tapName: function(event) {
    console.log(event)
  }
})

event对象包含一些关于事件的数据:

target:触发事件的组件
currentTarget:当前组件
type:事件类型
timeStamp:时间戳(页面打开到触发事件所经过的毫秒数)
touches:包含触摸点的数组(多点触控)
changedTouches :发生改变的触摸点的数组(多点触控)
detail:额外的自定义信息

冒泡事件和非冒泡事件

为什么会有target和currentTarget之分呢,这是由于事件分为两类,冒泡事件和非冒泡事件

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

其中tap事件是属于冒泡事件(这也是为什么上面例子中的event会包含currentTarget),另外其它的冒泡事件还包括
| 类型 | 触发条件 |
| ------------- |-------------|
| touchstart | 手指触摸动作开始 |
| touchmove | 手指触摸后移动 |
| touchcancel | 手指触摸动作被打断,如来电提醒,弹窗 |
| touchend | 手指触摸动作结束 |
| tap | 手指触摸后马上离开 |
| longtap | 手指触摸后,超过350ms再离开 |

为什么需要冒泡事件

有了冒泡事件,就可以更加方便的实现一些功能。

比如程序有一个视图,包含用户头像和姓名,当用户点击头像或姓名时,进入用户详情页面。如果没有冒泡事件,就需要处理头像和姓名的点击事件,而现在只需在外层包裹一个组件,并处理该组件的事件即可。

阻止事件冒泡

在有些情况下可能会希望阻止事件的冒泡行为,可以使用catch事件绑定,如catchtap,就可以阻止事件的冒泡行为。

可以通过下面的代码示例来加深对冒泡事件的理解

//.wxml
<view id="outter" bindtap="handleTapOutter">
  我是父亲节点
  <view id="middle" catchtap="handleTapMiddle">
    我是儿子节点
    <view id="inner" bindtap="handleInner">
      我是孙子节点
    </view>
  </view>
</view>

//.js
Page({
  handleTapOutter: function(event) {
    console.log("父亲节点被点击")
  },
  handleTapMiddle: function(event) {
    console.log("儿子节点被点击")
  },
  handleInner: function(event) {
    console.log("孙子节点被点击")
  },
})

尝试修改各级节点的tap事件绑定方式,查看输出的日志会有什么变化。

以上就是小程序开发基础篇之事件(9)的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 微信小程序跟读 demo代码
  • 微信小程序图片展示demo代码
  • 微信小程序笑话大全demo代码
  • 微信小程序工具下载以及官方文档
  • 微信小程序版聊天室+服务端 demo代码
  • 微信小程序-公众号热门文章信息流 demo代码
  • 微信小程序游戏2048demo代码
  • 微信小程序-豆瓣电影demo代码
  • 微信小程序的掘金信息流demo代码
  • 微信小程序官方示例代码

相关文章

  • 2018-11-30animation实现让云朵飘的动画实例
  • 2017-06-20一个微信小程序仿豆瓣电影开发示例
  • 2018-11-30小程序开发分享页面后返回首页
  • 2018-11-23微信小程序云开发服务端数据库API 删除多条记录
  • 2018-11-30微信小程序实例:引入框架WeUI的代码实现
  • 2018-11-30微信小程序 九宫格实例代码
  • 2018-11-30小程序开发之天气预报
  • 2018-11-30微信小程序个人怎么注册?
  • 2018-11-30微信小程序开发经验总结
  • 2018-11-30微信小程序 登陆流程详细介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序中密码输入框的设计代码
    • 微信小程序开发系列(一)开发准备的详解
    • 微信小程序中media标签详解
    • 微信小程序模拟cookie的实现
    • 微信小程序实现删除处理的案例
    • 微信小程序云开发API 获取记录的引用
    • 微信小程序列表下拉刷新上拉加载实例代码
    • 微信小程序支持Promise的方法介绍
    • 微信小程序版的知乎日报开发实例
    • 微信小程序开发之 下拉刷新,上拉加载更多

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有