小程序点击事件

解决点击事件嵌套

单个点击事件绑定

小程序点击事件

         小程序点击事件

事件的区别,官方文档解释:

事件分为冒泡事件和非冒泡事件:

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

bindtap:冒泡事件

小程序点击事件

点击外层view

小程序点击事件

点击内层view

小程序点击事件

结果:点击内层view的时候,外层的点击事件也会被触发。

catchtap:非冒泡事件

 

小程序点击事件

点击外层view

小程序点击事件

点击内层view

小程序点击事件

结果:点击内层view时外层view点击事件不会触发

bindtap和catchtap:

小程序点击事件

点击最内层view

小程序点击事件

结果:最内层的bindtap冒泡事件会触发内层的catchtap非冒泡事件后点击事件结束,

         点击事件从最内层的bindtap冒泡分发到catchtap呗拦截。

mut-bind:tap互斥事件

除 bind 和 catch 外,还可以使用 mut-bind 来绑定事件。一个 mut-bind 触发后,如果事件冒泡到其他节点上,其他节点上的 mut-bind 绑定函数不会被触发,但 bind 绑定函数和 catch 绑定函数依旧会被触发

所有 mut-bind 是“互斥”的,只会有其中一个绑定函数被触发。同时,它完全不影响 bind 和 catch 的绑定效果

点击内层mut-bind

小程序点击事件

 

小程序点击事件

结果:外层的mut-bind并没有被触发,事件分发到最内层bindtap,然后再次分发到内层catchtap之后被拦截。并没有分发到最外层的bindtap上。

点击外层mut-bind

小程序点击事件

mut-bind完全不影响 bind 和 catch 的绑定效果