微信小程序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 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
javascript 24小时弹出一次的代码(利用cookies)
Sep 03 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
避坑之 JavaScript 中的toFixed()和正则表达式
Apr 19 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
substr()函数中文版
2006/10/09 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
jquery时间下拉框小例子
2013/04/15 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python中的闭包用法实例详解
2015/05/05 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
浅谈Python type的使用
2019/11/19 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
幼儿园教师培训制度
2014/01/16 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
辞职信怎么写?
2019/05/21 职场文书
争做文明公民倡议书
2019/06/24 职场文书