当前位置:   article > 正文

微信小程序 事件_微信小程序 按钮事件

微信小程序 按钮事件

常用事件

事件描述备注
tap点击
longtap长按推荐使用 longpress 代替 longtap
longpress长按tap 事件不会再触发(基础库 1.5.0)
touchstart触摸开始
touchmove触摸过程中,手指进行了移动
touchend触摸结束
touchcancel触摸被打断例:来电、弹窗

如何绑定事件

以 tap 事件为例,事件绑定的写法如下:

<!--
  bind  事件绑定关键字
  tap   事件
  onTap 事件监听函数
-->
<button bindtap="onTap">按钮</button>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

基础库 1.5.0 起,事件绑定关键字事件 之间可以用 “:” 连接,含义不变

<!-- bind:tap 和 bindtap 含义相同 -->
<button bind:tap="onTap">按钮</button>
  • 1
  • 2

绑定事件时,可以使用数据绑定的语法

<!-- functionName 的值是 string 类型 -->
<button bind:tap="{{ functionName }}">按钮</button>
  • 1
  • 2

页面的 JS 文件

Page({
  data: {
    functionName: 'onTap'
  },

  onTap(event) {
    console.log('onTap', event)
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

事件绑定关键字

  • bind
  • catch
  • mut-bind
  • capture-bind
  • capture-catch

bind

基本事件绑定

catch

阻止事件向上冒泡

mut-bind

冒泡过程中,如果有多个使用 mut-bind 绑定事件监听的元素,只有第一个会被触发(基础库 2.8.2)

capture-bind

在捕获阶段触发事件(基础库 1.5.0)

capture-catch

在捕获阶段触发事件,终止后续捕获阶段并取消冒泡阶段(基础库 1.5.0)

事件对象

基础事件的常见属性

属性描述
event.type事件类型
event.timeStamp页面打开到触发事件所经过的毫秒数
event.target触发事件的组件
event.currentTarget绑定事件的当前组件

触摸事件的常见属性

属性描述
event.touchestouches 是一个数组,表示当前停留在屏幕上的触摸点
event.changedToucheschangedTouches 是一个数组,表示发生变化的触摸点。从无到有(touchstart),发生变化(touchmove),从有到无(touchend, touchcancel)

自定义事件的常见属性

属性描述
event.detail自定义事件携带的数据。小程序框架提供的组件,也会在 detail 携带一些数据。

自定义属性

在组件上使用 data- 前缀声明的属性,可以在事件对象中获取到

<!-- 自定义属性 -->
<button data-msg="{{ msg }}" bind:tap="onTap">按钮</button>
  • 1
  • 2
Page({
  data: {
    msg: 'Hello world!'
  },

  onTap(event) {
    // 通过事件对象获取自定义属性的值
    console.log(event.currentTarget.dataset.msg)
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在事件对象中访问自定义属性时,属性名会发生一次转换

在 WXML 中的属性名在事件对象中的属性名访问示例
data-my-datamyDataevent.currentTarget.dataset.myData
data-myDatamydataevent.currentTarget.dataset.mydata
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号