微信小程序bindtap事件与冒泡阻止详解
bindtap就是点击事件
在.wxml文件绑定:
cilckhere
在一个组件的属性上添加bindtap并赋予一个值(一个函数名)
当点击该组件时,会触发相应的函数执行
在后台.js文件中定义tapMessage函数:
//index.js Page({ data:{ mo:'HelloWorld!!', userid:'1234', }, //定义函数 tapMessage:function(event){ console.log(event.target.id);//可获得 console.log(event.target.name);//无法获得,通过target只能直接获取id console.log(event.target.dataset);//要获得其它属性,需要从dataset(数据集)中获取 console.log(event.target.dataset.userxxx);//userxxx为自定义的属性名,但命名方式为:data-userxxx //这里还原使用userXxx console.log(event.target.dataset.userXxx); } })
event封装的是该事件的信息,如上通过它可得到一些数据
注意一点:
cilckhere
自定义数据(data-)中的大写改为短横线+其小写
取数据时,去掉data和那些短横线并还原大写(data-user-xxx-->userXxx)
事件冒泡就是指嵌套事件发生
如果多层标签嵌套,里层事件发生后,其外层会相应发生,如:
outer middle inner
handout:function(){ console.log("out"); }, handmiddle:function(){ console.log("middle"); }, handinner:function(){ console.log("inner"); }
点击inner三个事件都执行,点击middlek执行handmiddle和handout,点击out只执行handout
阻止事件冒泡行为:将bindtap改为catchtap就行了,只会触发自身的点击事件
outer middle inner
需要理解是,它阻断自身的冒泡行为
如上点击inner,执行的是handinner和handmiddle两个函数
不管是不是自身触发的点击行为,传到我这里,我就将它阻断(不再向上传递)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。