您当前的位置: 首页 > 知识百科 > 微信小程序点击事件开发教程

微信小程序点击事件开发教程

时间:2023-07-01 14:05 阅读数:19 人阅读 分类:知识百科

  小程序的开发步骤包括微信小程序点击事件的开发,但是关于点击事件,还有很多朋友表示不太清楚,今天小编就来为大家讲一讲微信小程序点击事件怎么开发。

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

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

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

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

  Page({

  tapName: function(event) {

  console.log(event)

  }})

  可以看到log出来的信息⼤致如下

  {

  "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,

  }],

  }

  事件详解

  事件分类

  事件分为冒泡事件和⾮冒泡事件

  1. 冒泡事件:当⼀个组件上的事件被触发后,该事件会向⽗节点传递。2. ⾮冒泡事件:当⼀个组件上的事件被触发后,该事件不会向⽗节点传递。WXML的冒泡事件列表:

  类型

  touchstart

  touchmove

  touchcancel

  touchend

  tap

  longtap触发条件⼿指触摸动作开始⼿指触摸后移动⼿指触摸动作被打断,如来电提醒,弹窗⼿指触摸动作结束⼿指触摸后马上离开⼿指触摸后,超过350ms再离开

  注:除上表之外的其他组件⾃定义事件都是⾮冒泡事件,如的submit事件,的input事件,的scroll事件,(详见各个)事件绑定

  事件绑定的写法同组件的属*,以key、value的形式。

  key以bind或catch开头,然后跟上事件的类型,如bindtap,catchtouchstartvalue是⼀个字符串,需要在对应的Page中定义同名的函数。不然当触发事件的时候会报错。

  bind事件绑定不会阻⽌冒泡事件向上冒泡,catch事件绑定可以阻⽌冒泡事件向上冒泡。

  如在下边这个例⼦中,点击inner view会先后触发handleTap3和handleTap2(因为tap事件会冒泡到middle view,⽽middle view阻⽌了tap事件冒泡,不再向⽗节点传递),点击middle view会触发handleTap2,点击outter view会触发handleTap1。

  outer view

  middle view

  inner view

  事件对象

  如⽆特殊说明,当组件触发事件时,逻辑层绑定该事件的处理函数会收到⼀个事件对象。

  BaseEvent基础事件对象属*列表:

  类型

  String

  Integer

  Object

  Object属*说明事件类型事件⽣成时的时间戳触发事件的组件的⼀些属*值集合当前组件的⼀些属*值集合

  CustomEvent ⾃定义事件对象属*列表(继承 BaseEvent):

  属*类型说明Object额外的信息

  TouchEvent 触摸事件对象属*列表(继承 BaseEvent):

  属*类型说明Array触摸事件,当前停留在屏幕中的触摸点信息的数组Array触摸事件,当前变化的触摸点信息的数组

  特殊事件: 中的触摸事件不可冒泡,所以没有 currentTarget。type

  通⽤事件类型

  timeStamp

  该页⾯打开到触发事件所经过的毫秒数。

  target

  触发事件的源组件。

  类型说明

  idString事件源组件的id

  tagNameString当前组件的类型Object事件源组件上由data-开头的⾃定义属*组成的集合属*currentTarget

  事件绑定的当前组件。

  类型说明

  idString当前组件的id

  tagNameString当前组件的类型Object当前组件上由data-开头的⾃定义属*组成的集合说明: target 和 currentTarget 可以参考上例中,点击 inner view时,handleTap3 收到的事件对象 target 和 currentTarget 都是 inner,⽽ handleTap2 收到的事件对象 target 就是 inner,currentTarget 就是 middle。属*

  dataset

  在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。书写⽅式:以data-开头,多个单词由连字符-链接,不能有⼤写(⼤写会⾃动转成⼩写)如data-element-type,最终在 event.target.dataset 中会将连字符转成驼峰elementType。⽰例:

  Page({

  bindViewTap:function(event){

  event.target.dataset.alphaBeta === 1 // - 会转为驼峰写法 event.target.dataset.alphabeta === 2 // ⼤写会转为⼩写

  }

  })

  touches

  touches 是⼀个数组,每个元素为⼀个 Touch 对象(canvas 触摸事件中携带的 touches是 CanvasTouch 数组)。 表⽰当前停留在屏幕上的触摸点。

  Touch 对象

  属*

  identifier

  pageX,pageY

  clientX,clientY类型说明Number触摸点的标识符 ,横向为X轴,Number距离⽂档左上⾓的距离,⽂档的左上⾓为原点纵向为Y轴XNumber距离页⾯可显⽰区域(屏幕除去导航条)左上⾓距离,横向为轴,纵向为Y轴

  CanvasTouch 对象

  属*类型说明特殊说明

  identifierNumber触摸点的标识符 Canvas 左上⾓的距离,Canvas 的左上⾓为原点 ,横向 x, yNumber距离为X轴,纵向为Y轴

  changedTouches

  changedTouches 数据格式同 touches。 表⽰有变化的触摸点,如从⽆变有(touchstart),位置变化(touchmove),从有变⽆(touchend、touchcancel)。

  detail

  ⾃定义事件所携带的数据,如表单组件的提交事件会携带⽤户的输⼊,媒体的错误事件会携带错误信息,详见定义中各个事件的定义。

  微信小程序点击事件怎么开发?具体流程和相关代码小编都在文中介绍得比较详细了,希望能够帮助到大家。更多相关资料请关注微信小程序素材网。

  

  微信小程序点击事件是什么?怎么操作?

  微信小程序点击事件处理与参数传递

  微信小程序按钮点击事件,微信小程序按钮组件:button