#鸿蒙通关秘籍#如何防止事件冒泡导致父组件触发点击事件?

HarmonyOS
2024-12-05 14:42:51
853浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
VR梦蝶飞舞

为了在点击事件中阻止父组件的点击事件被触发,可以将子组件包裹在一个容器组件中,并将该容器组件的 hitTestBehavior 属性设置为 HitTestMode.Block。通过这种方式,点击事件不会从子组件冒泡到父组件,从而避免父组件的点击相应。

@Component
struct ClickEvent {
  @Consume isEnabled: boolean;
  @State parentCompResponseTimes: number = 0;

  build() {
    Column() {
      Column() {
        Column() {
          Button(this.isEnabled ? '子组件无响应' : '子组件响应')
            .enabled(false)
            .fontSize(16)
            .height(40)
            .onClick(() => {})
        }
        .hitTestBehavior(this.isEnabled ? HitTestMode.Block : HitTestMode.Default)
      }
      .width('100%')
      .height(100)
      .alignItems(HorizontalAlign.Center)
      .onClick(() => {
        this.parentCompResponseTimes++;
      })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
分享
微博
QQ
微信
回复
2024-12-05 17:02:15


相关问题
HarmonyOS 回车触发点击事件
566浏览 • 1回复 待解决
点击事件冒泡不符合预期
1253浏览 • 1回复 待解决
组件如何处理子组件点击事件
3354浏览 • 1回复 待解决
HarmonyOS onClick事件如何阻止事件冒泡
778浏览 • 1回复 待解决
HarmonyOS ImageSpan点击事件无法触发
984浏览 • 1回复 待解决