微信小程序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 相关文章推荐
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
Nov 28 Javascript
jQuery中unwrap()方法用法实例
Jan 16 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
Bootstrap基本组件学习笔记之分页(12)
Dec 08 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
在 HTML 页面中使用 React的场景分析
Jan 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
计算机操作自荐信
2013/12/07 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
写得不错的求职信范文
2014/07/11 职场文书
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电