微信小程序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 相关文章推荐
读取input:file的路径并显示本地图片的方法
Sep 23 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
jquery实现的下拉和收缩效果示例
Aug 21 Javascript
Bootstrap源码解读表单(2)
Dec 22 Javascript
简单实现js菜单栏切换效果
Mar 04 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
vsCode安装使用教程和插件安装方法
Aug 24 Javascript
可能被忽略的一些JavaScript数组方法细节
Feb 28 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
原生js实现弹窗消息动画
Nov 20 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生成静态页面详解
2006/11/19 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
vue实现防抖的实例代码
2021/01/11 Vue.js
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
如何在存储过程中使用Loop
2016/01/05 面试题
工作违纪检讨书
2014/02/17 职场文书
销售人员求职信
2014/07/22 职场文书
毕业生个人自荐书
2015/03/05 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python