小程序点击事件
解决点击事件嵌套
单个点击事件绑定
事件的区别,官方文档解释:
事件分为冒泡事件和非冒泡事件:
- 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
- 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。
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
的绑定效果