微信小程序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 相关文章推荐
JavaScript之自定义类型
May 04 Javascript
jquery实现智能感知连接外网搜索
May 21 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
详解vue挂载到dom上会发生什么
Jan 20 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
js中let能否完全替代IIFE
Jun 15 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
JavaScript实现手风琴效果
Feb 18 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
浅析Yii2缓存的使用
2016/05/10 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
PHP的PDO连接讲解
2019/01/24 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python超时重新请求解决方案
2019/10/21 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
简单的Python人脸识别系统
2020/07/14 Python
如何用python批量调整视频声音
2020/12/22 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
党支部反对四风思想汇报
2014/10/10 职场文书
逃课检讨书
2015/01/26 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python
pandas中关于apply+lambda的应用
2022/02/28 Python