微信小程序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 相关文章推荐
使用Modello编写JavaScript类
Dec 22 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
js中split函数的使用方法说明
Dec 26 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
jquery插件star-rating.js实现星级评分特效
Apr 15 Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 Javascript
Vue组件化开发思考
Feb 02 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 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 和 MySQL 基础教程(一)
2006/10/09 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
node.js基础知识小结
2018/02/26 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
利用python获得时间的实例说明
2013/03/25 Python
Python smallseg分词用法实例分析
2015/05/28 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
python简单实现操作Mysql数据库
2018/01/29 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
创建Django项目图文实例详解
2019/06/06 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
详解Python3中的 input() 函数
2020/03/18 Python
Python短信轰炸的代码
2020/03/25 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
一道SQL面试题
2012/12/31 面试题
公益活动策划方案
2014/01/09 职场文书
婚庆司仪主持词
2014/03/15 职场文书
副董事长岗位职责
2014/04/02 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫