Eternity_y 2023-10-17 17:55 采纳率: 0%
浏览 119

点击子元素只触发子元素事件,不触发父元素点击事件

问题:点击子元素只触发子元素事件,不触发父元素点击事件
解决方案:在子元素上添加阻止事件冒泡方法(.stop修饰符可以阻止事件冒泡)
示例代码:

<template>  
  <div @click="outerClick">  
    <div @click.stop="innerClick">  
      Inner Div  
    </div>  
  </div>  
</template>  
  
<script>  
export default {  
  methods: {  
    innerClick() {  
      console.log("Inner div clicked");  
    },  
    outerClick() {  
      console.log("Outer div clicked");  
    }  
  }  
};  
</script>

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-18 05:13
    关注

    【以下回答由 GPT 生成】

    在Vue.js中,使用修饰符.stop可以阻止事件冒泡,但是这只针对普通的原生事件有效,对于自定义事件是无效的。因此,在上述示例代码中,点击子元素仍然会触发父元素的点击事件。

    解决这个问题的方法是,在子元素的点击事件中手动停止事件传播。可以使用event.stopPropagation()方法来停止事件的继续传播,即阻止从子元素向父元素的事件传播。

    以下是修改后的代码示例:

    <template>
      <div @click="outerClick">
        <div @click="innerClick">
          Inner Div
        </div>
      </div>
    </template>
    
    <script>
    export default {
      methods: {
        innerClick(event) {
          event.stopPropagation(); // 停止事件传播
          console.log("Inner div clicked");
        },
        outerClick() {
          console.log("Outer div clicked");
        }
      }
    };
    </script>
    

    通过在子元素的点击事件中调用event.stopPropagation()方法,可以阻止事件继续向父元素传播,从而实现只触发子元素的点击事件,不触发父元素的点击事件。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月17日

悬赏问题

  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开