当前位置: 首页 / 技术干货 / 正文
好程序员web前端培训分享kbone-事件系统

2020-06-15

好程序员 大数据培训

  好程序员web前端培训分享kbone-事件系统:1、用法,kbone 里节点事件没有直接复用小程序的捕获冒泡事件体系,原因在于:

  小程序事件和 Web 事件不完全对齐,比如 input 事件在小程序里是不冒泡的。

  小程序自定义组件是基于 Web Components 的概念设计的,对于跨自定义组件的情况,无法准确获取事件的源节点。

HTML

故在 kbone 里的节点事件是在源节点里监听到后,就直接在 kbone 仿造出的 dom 树中进行捕获冒泡。此处使用的事件绑定方式均采用 bindxxx 的方式,故在小程序中初监听到的事件一定是在源节点监听到的。比如用户触摸屏幕后,会触发 touchstart 事件,在节点 a 上监听到 touchstart 事件后,后续监听到同一行为触发的 touchstart 均会被抛弃,后续的捕获冒泡阶段会在仿造 dom 树中进行。

目前除了内置组件特有的事件外(比如图片的 load 事件),普通节点只有 touchstart、touchmove、touchend、touchcancel 和 tap 会被监听,其中 tap 会被转化为 cick 事件来触发。

因为此处事件监听方式默认是 bindxxx,但是对于一些特殊场景可能需要使用小程序的 capture-bind:xxx(比如无法在源节点监听到事件的场景)、catchxxx(比如需要阻止触摸引起滚动的场景) 和动画事件的情况,对于此可以使用特殊节点 wx-capturewx-catch 和 wx-animation

</wx-capture>

</wx-catch>

</wx-animation>

其中 wx-capture 和 wx-catch 节点上面绑定的 touchstart、touchmove、touchend、touchcancel 和 tap 五个事件会被使用 capture-bind:xxx 和 catchxxx 的方式监听,脱离了 kbone 的事件捕获冒泡体系,所以只会在此节点单独触发。

PS:这三种特殊节点的内部实现和内置组件一致,故书写方式和样式处理均可参考内置组件的使用方案。

 

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
在线咨询
试听
入学教程
立即报名

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号