微信小程序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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
Oct 24 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
vue axios 简单封装以及思考
Oct 09 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
全面分析JavaScript 继承
May 30 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
Sep 06 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
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
python中反射用法实例
2015/03/27 Python
python实现Adapter模式实例代码
2018/02/09 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
python 实现UTC时间加减的方法
2018/12/31 Python
python简单实现AES加密和解密
2019/03/28 Python
python实现五子棋人机对战游戏
2020/03/25 Python
Python Process多进程实现过程
2019/10/22 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python的链表基础知识点
2020/09/13 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
党课学习思想汇报
2014/01/02 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书