收藏
回答

组件容器元素的 tap 事件,如何判断被点击的是哪个后代组件?

A 和 B 间的关系为 ancestor 和 descendant:

<!-- a.wxml -->
<view bind:tap="onTap">
  <slot />
</view>


<!-- page.wxml -->
<a>
  <b />
  <c />
</a>


当 A 的容器元素的 tap 事件触发时,如何判断 B 是否被点击?

尝试过 B 的 tap 事件记录点击时间,A 的 tap 事件判断 B 的最近点击时间是否接近,但发现不太可靠,会受设备性能影响。

回答关注问题邀请回答
收藏

2 个回答

  • ym
    ym
    2020-11-20

    已解决,使用 event.timeStamp(事件生成时的时间戳),同一次点击 B 组件内的 tap 和 A 组件的 tap 事件的 timeStamp 是一致的,不应该自己生成时间。

    2020-11-20
    有用
    回复
  • optimistic
    optimistic
    2020-11-20

    e.detail.target

    2020-11-20
    有用
    回复 3
    • ym
      ym
      2020-11-20
      2020-11-20
      回复
    • optimistic
      optimistic
      2020-11-20回复ym
      在对应元素使用data-绑定数据
      2020-11-20
      回复
    • ym
      ym
      2020-11-20回复optimistic
      不行,拿不内层触发 tap 的节点的 dataset。
      2020-11-20
      回复
登录 后发表内容
问题标签