微信小程序APP的事件绑定以及传递参数时的冒泡和捕获


Posted in Javascript onApril 19, 2022

常见的事件有:

类型 触发条件 最低版本
touchstart 手指触摸动作开始  
touchmove 手指触摸后移动  
touchcancel 手指触摸动作被打断,如来电提醒,弹窗  
touchend 手指触摸动作结束  
tap 手指触摸后马上离开  
longpress 手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发 1.5.0
longtap 手指触摸后,超过350ms再离开(推荐使用longpress事件代替)  
transitionend 会在 WXSS transition 或 wx.createAnimation 动画结束后触发  
animationstart 会在一个 WXSS animation 动画开始时触发  
animationiteration 会在一个 WXSS animation 一次迭代结束时触发  
animationend 会在一个 WXSS animation 动画完成时触发  
touchforcechange 在支持 3D Touch 的 iPhone 设备,重按时会触发  

有两个注意点:

Touchcancle: 在某些特定场景下才会触发(比如来电打断等) 

tap事件和longpress事件通常只会触发其中一个

currentTarget和target的区别

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

事件传递参数

当视图层发生事件时,某些情况需要事件携带一些参数到执行的函数中, 这个时候就可以通过

data-属性来完成:

1 格式:data-属性的名称

2 获取:e.currentTarget.dataset.属性的名称

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

touches和changedTouches的区别

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

事件的绑定两种方法

第一种:bind:事件名 推荐方式,冒号隔开

wxml文件:

<button bind:tap="click1" data-name="{{name}}" data-age="18" id="bt">我是按钮</button>

js文件:

Page({

  /**
   * 页面的初始数据
   */
  data: {
    name:"jeff"
  },
  //e为事件对象,事件所有产生的数据都在e中
  click1:function(e){
    console.log("你点击了事件1",e)
  },
  )}

第二种:bind事件名 不隔开

wxml文件:

<view bindtap="click2">我是事件2</view>

js文件:

Page({
  /**
   * 页面的初始数据
   */
  //e为事件对象,事件所有产生的数据都在e中
  click2:function(e){
  console.log("你点击了事件2",e)
  },
  )}

事件传参

关键字:setDate

WXML文件:

<button bind:tap='click2'>你当前点击了{{num}}次</button>

js文件

// pages/test/test.js
Page({
  data: {
    num:0,
  },
  click2: function (e) {
    this.setData({
      num:this.data.num+1
    })
    console.log('你点击了按钮2')
  },
  
})

事件的冒泡与事件的捕获

capture-bind:tap="click1"		 # 事件捕获,执行顺序:由外->内
bind:tap="click2"				# 事件冒泡,执行顺序:由内->外
catch: 阻止事件捕获
capture-catch:tap="click3"   # 顺序执行到click3,不包括click3.后面不再继续执行,阻止了

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

catch阻止捕获

微信小程序APP的事件绑定以及传递参数时的冒泡和捕获

小结

1 响应函数直接写在page对象中就可以了,不需要和vue一样写在methods里面

2 <view bind:事件名称 = "响应函数的函数名" data-参数名 = "值">

3 获取点击事件传过来的值,在事件对象中。例如:e.currentTarget.dataset中

以上就是微信小程序事件绑定传参冒泡及捕获的示例详解的详细内容!

Javascript 相关文章推荐
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
jQuery实现的支持IE的html滑动条
Mar 16 Javascript
jquery Easyui快速开发总结
Aug 20 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
Sep 01 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
JS填写银行卡号每隔4位数字加一个空格
Dec 19 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
微信小程序APP的生命周期及页面的生命周期
解决vue中provide inject的响应式监听
Apr 19 #Vue.js
vue3种table表格选项个数的控制方法
Apr 14 #Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 #Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 #Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 #Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 #Vue.js
You might like
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
YII路径的用法总结
2014/07/09 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
JavaScript常用事件介绍
2019/01/21 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
python使用cookie库操保存cookie详解
2014/03/03 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
python类中super()和__init__()的区别
2016/10/18 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
利用python开发app实战的方法
2019/07/09 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
导致python中import错误的原因是什么
2020/07/01 Python
python实现简单遗传算法
2020/09/18 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
荷兰牛仔裤网上商店:Jeans Centre
2018/04/03 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
物流仓储计划书
2014/01/10 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
社区端午节活动总结
2015/02/11 职场文书
MySQL笔记 —SQL运算符
2022/01/18 MySQL
SpringBoot整合Minio文件存储
2022/04/03 Java/Android