【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal

【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal

第六章 小程序事件绑定、动态提示Toast、对话框 Modal


文章目录

  • 【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal
  • 前言
  • 一、事件是什么?
  • 二、小程序中常用事件
  • 三、事件传播
  • 四、指定回调函数阶段
  • 五、event事件对象属性
  • 六、target和currentTarget的区别
  • 七、代码示例
    • 1.函数前缀格式
    • 2.事件函数为全局数据赋值
    • 3.事件函数传参
  • 八、bindinput语法格式
  • 九、动态提示 Toast
  • 十、对话框 Modal
  • 总结


前言

本章主要讲解小程序事件绑定、动态提示Toast、对话框 Modal,结合代码示例,我们来研究一下!


一、事件是什么?

事件是视图层到逻辑层的通讯方式。事件是小程序和用户互动的主要方式,通过事件将用户在视图层的行为,反馈到逻辑层进行业务处理。
这里引用小白白大佬文章的图片(渲染层======视图层)。
【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal_第1张图片


二、小程序中常用事件

微信官方文档给出的小程序常用事件------>

类型 绑定方式 事件描述
tap bindtap 或 bind:tap 触摸后马上离开,类似于 HTML 中的 click 事件。
input bindinput 或 bind:input 文本框输入事件。
change bindchange 或 bind:change 状态改变时触发。
longpress bindlongpress 或 bind:longpress 触摸后,超过 350ms 再离开。如果指定了该事件的回调函数并触发了该事件,tap事件将不被触发。
touchstart bindtouchstart 或 bind:touchstart 触摸开始。
touchmove bindtouchmove 或 bind:touchmove 触摸后移动。
touchcancel bindtouchcancel 或 bind:touchcancel 触摸动作被打断,如来电提醒,弹窗等。
touchend bindtouchend 或 bind:touchend 触摸结束。

三、事件传播

事件传播阶段
想学习事件的知识,可以看阮一峰老师的文章

当事件发生后,会在子元素和父元素之间进行传播。这种传播分为三个阶段。
①第一阶段:从window对象传导至目标节点(上层传到底层),称之为捕获阶段(capture phase)
②第二阶段:在目标节点上触发,称之为目标阶段(target phase)
③第三阶段:从目标节点传导回window对象(从底层传回上层),称之为冒泡阶段(bubbling phase)

我们通过代码来演示
通过两个元素来看触发几次

<div>
  <p>点击p>
div>

如果两个节点都设置click事件监听函数。对于

点击,click事件会触发四次:

节点的捕获阶段和冒泡阶段各一次,

节点的目标阶段触发了2次。
1、捕获阶段:事件从

传播时,触发

click事件;
2、目标阶段:事件从
到达

时,触发

click的时间;
3、冒泡阶段:事件从

传回

时,再次触发
click事件。
注:其中

节点有两个监听函数,所以他们都会因为click事件触发一次,共两次。

事件传播的最上层对象是window,接着依次是documenthtml(document.documentElement)body(document.body)。也就是说,上例的事件传播顺序,在捕获阶段依次为windowdocumenthtmlbodydivp,在冒泡阶段依次为pdivbodyhtmldocumentwindow


四、指定回调函数阶段

小程序可以通过属性指定各种事件的回调函数,并且可以指定在哪个阶段触发回调函数。

类型 事件描述
capture-bind 捕获阶段触发。
capture-catch 捕获阶段触发,并中断事件,不再向下传播,即中断捕获阶段,并取消随后的冒泡阶段。
bind 冒泡阶段触发。
catch 冒泡阶段触发,并取消事件进一步向上冒泡。

五、event事件对象属性

详细属性列表如下:

属性 类型 事件描述
type String 事件类型
timeStamp Integer 事件生成时的时间戳
target Object 触发事件的组件的一些属性值集合
currentTarget Object 当前组件的一些属性值集合
mark Object 事件标记数据
detail Object 额外的信息
touches Array 触摸事件,当前停留在屏幕中的触摸点信息的数组
changedTouches Array 触摸事件,当前变化的触摸点信息的数组

六、target和currentTarget的区别

target:触发事件的源头组件。
currentTarget:当前事件所绑定的组件

我们通过代码来演示
通过代码来区分一下

<view >
  <text class="title">hello text>
  <button  bindtap="buttonHandler" type="primary">按钮button>
view>

js文件

buttonHandler(event) {
    console.log("event" ,event);
    console.log("源头组件" ,event.target);
    console.log("当前事件所绑定的组件" ,event.target);
  },

输出结果
【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal_第2张图片
分析结果:
e.target:内部

你可能感兴趣的:(小程序,微信小程序,前端,javascript)