收藏
回答

catchtouchstart会导致子元素bindtap失效

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 客户端 6.7.3 2.4.0

- 当前 Bug 的表现(可附上截图)


父元素添加catchtouchstart后,子元素的bindtap失效。


- 预期表现

父元素添加catchtouchstart后,子元素的bindtap应该正常触发。


- 问题

是bug还是我哪里理解不对?

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

4 个回答

  • 張張張張張臻
    張張張張張臻
    2018-11-22

    如果你是想要让父元素移动的时候,阻止页面同时滚动,并且想要子元素的点击事件正常工作的话。这样设置:

    【父元素】bind:touchstart、catch:touchmove、bind:touchend

    【子元素】bindtap、catchtap均可

    2018-11-22
    有用 1
    回复 2
    • 2018-11-22

      好的,你这个方案也行,感谢。遇上了这个问题上来问一下是bug还是设计如此,觉得有点坑。

      2018-11-22
      回复
    • MeCall小唐
      MeCall小唐
      2019-11-20
      暂时可以用到这个方案
      2019-11-20
      回复
  • ==
    ==
    2018-11-22

    你父元素包裹了子元素,catchtouchstart点击事件响应的肯定是父元素啊!!!!如果你用bindtap他就是父元素和子元素都响应。。你可以父子两个都用catchtouchstart

    2018-11-22
    有用 1
    回复 7
    • 2018-11-22

      问题是:子元素的bindtap失效。

      2018-11-22
      回复
    • ==
      ==
      2018-11-22回复

      子元素也用catchtouchstart

      2018-11-22
      回复
    • 2018-11-22回复==

      这样会导致两个问题:

      1、滑动会触发,本来是想捕获点击的。

      2、父元素catchtouchstart失效。

      2018-11-22
      回复
    • ==
      ==
      2018-11-22回复

      你现在要实现怎样的触发事件

      2018-11-22
      回复
    • ==
      ==
      2018-11-22回复

      父子都用catchtouchstart那它就会在你点击子元素和父元素的时候都分别各自响应。,。

      如果父元素加catchtouchstart子元素是bindtap那子元素事件不会响应,

      如果父元素是bindtap那两个会一起响应

      2018-11-22
      回复
    查看更多(2)
  • 2018-12-01

    没有官方的回复?

    2018-12-01
    有用
    回复
  • 这都申请了
    这都申请了
    2018-11-22

    bindtap不会阻止冒泡,所以你懂得

    2018-11-22
    有用
    回复 5
    • 2018-11-22

      我想问一下你怎么理解这句话:父元素添加catchtouchstart后,子元素的bindtap失效。

      2018-11-22
      回复
    • 2018-11-22回复==

      1、请注意capture-catch和catch的区别。

      2、请注意tap和touchstart的区别。

      2018-11-22
      回复
    • ==
      ==
      2018-11-22回复

      。。。


      2018-11-22
      回复
    • 2018-11-22回复==

      咋了?

      2018-11-22
      回复
    • 这都申请了
      这都申请了
      2018-11-22回复

      目前看来,可能是设计如此,也可能是设计缺陷

      2018-11-22
      回复
登录 后发表内容