微信小程序bindtap事件与冒泡阻止详解

  

bindtap就是点击事件

  

<强>在.wxml文件绑定:

        & lt;文本id=皌extId”data-userxxx=100”bindtap=' tapMessage祝辞cilck here      

在一个组件的属性上添加bindtap并赋予一个值(一个函数名)

  

当点击该组件时,会触发相应的函数执行

  

<强>在后台js文件中定义tapMessage函数:

     //index.js   页面({   数据:{   莫:“Hello World ! !”   用户标识:“1234”,   },//定义函数   tapMessage:函数(事件){   console.log (event.target.id);//可获得   console.log (event.target.name);//无法获得,通过目标只能直接获取id   console.log (event.target.dataset);//要获得其它属性,需要从数据集(数据集)中获取   console.log (event.target.dataset.userxxx);//userxxx为自定义的属性名,但命名方式为:data-userxxx//这里还原使用userXxx   console.log (event.target.dataset.userXxx);   }   })      

事件封装的是该事件的信息,如上通过它可得到一些数据

  

<强>注意一点:

        & lt; !——data-userXxx,这个大写的X要改为- X——比;   & lt;文本id=皌extId”data-user-xxx=100”bindtap=' tapMessage祝辞cilck here      

自定义数据(数据)中的大写改为短横线+其小写

  

取数据时,去掉数据和那些短横线并还原大写(data-user-xxx——比;userXxx)

  

事件冒泡就是指嵌套事件发生

  

<>强如果多层标签嵌套,里层事件发生后,其外层会相应发生,如:

        & lt;视图bindtap=笆┥帷北?   外   & lt;视图bindtap=handmiddle的祝辞   中间   & lt;视图bindtap=' handinner祝辞inner   & lt;/view>   & lt;/view>            讲义:函数(){   console.log (“”);   },   handmiddle:函数(){   console.log(“中间”);   },   handinner:函数(){   console.log(“内部”);   }      

点击内部三个事件都执行,点击middlek执行handmiddle和施舍,点击了只执行讲义

  

阻止事件冒泡行为:将bindtap改为catchtap就行了,只会触发自身的点击事件

        & lt;视图bindtap=笆┥帷北?   外   & lt;视图catchtap=handmiddle的祝辞   中间   & lt;视图bindtap=' handinner祝辞inner   & lt;/view>   & lt;/view>      

需要理解是,它阻断自身的冒泡行为

  

如上点击内心,执行的是handinner和handmiddle两个函数

  

不管是不是自身触发的点击行为,传到我这里,我就将它阻断(不再向上传递)

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

微信小程序bindtap事件与冒泡阻止详解