[微信小程序]为何input事件不能在父组件捕获? [原来是长辈啊。]

我个人的理解是,小程序中的事件都是从顶层组件往下传递,直到被catch为止。

而我在练习的时候感觉也是这样的,如果未被catch住,那么事件就会一直被capture到。

但是不知道为什么我尝试capture input控件的input事件时失败了。这是为什么?


下面是我写的代码

<view id="inner"capture-bind:input="handleInput">
  inner view
  <input/>
</view>
handleInput: function (evt){
    console.log('handleInput')
  }

当我在input控件输入的时候,控制台并没有输出。

  • input是非冒泡事件,不会向上传递 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html , 呵呵,我还能说什么呢?
    • 我的理解是事件分为冒泡和捕获两个阶段,捕获阶段的事件是向下传递的。非冒泡事件没有这两个阶段么?我没有看到文档中有关非冒泡事件的详细定义和说明也看不到源码,所以不太了解。, 让你了解
    • 注:除上表之外的其他组件自定义事件如无特殊声明都是非冒泡事件,如<form/>的submit事件,<input/>的input事件,<scroll-view/>的scroll事件,(详见各个组件) 自基础库版本 1.5.0 起,触摸类事件支持捕获阶段。(触摸类事件) , 赞
    • 明白了,谢谢!我没有注意到最后一句话,现在了解了, 我很好奇你想了解什么?