当前位置: 首页 > news >正文

在Element UI的<el-table>组件中,点击子元素不触发父级事件

在Element UI的<el-table>组件中,@row-click事件是绑定在整行上的,这意味着如果点击了表格的任意位置(除非有特定的子元素阻止了事件冒泡),都会触发这个事件。如果你想要在某些子元素上点击时不触发@row-click事件,你需要在这些子元素上阻止事件冒泡。

你可以通过在子元素上添加点击事件并调用event.stopPropagation()方法来实现这一点。event.stopPropagation()会阻止事件进一步冒泡到DOM树中,因此不会触发绑定在更高层次元素(如整行)上的事件。

以下是一个示例,展示了如何在表格的某个子元素(比如一个按钮)上点击时阻止@row-click事件的触发:

<template>  <div class="content">  <el-table :data="tableData" style="width: 100%" @row-click="handleRowClick">  <el-table-column prop="date" label="Date" width="180" />  <el-table-column prop="name" label="Name" width="180">  <template #default="{ row }">  <span>{{ row.name }}</span>  <el-button type="text" @click.stop="handleClickButton(row)">不触发行点击</el-button>  </template>  </el-table-column>  <el-table-column prop="address" label="Address" />  </el-table>  </div>  
</template>  <script>  
import { ref } from 'vue';  export default {  setup() {  const tableData = ref([  // ... 表格数据  ]);  // 处理行点击事件的方法  const handleRowClick = (row, column, event) => {  console.log('行被点击了', row.id);  };  // 处理按钮点击事件的方法  const handleClickButton = (row) => {  console.log('按钮被点击了,但行点击事件没有触发', row.id);  };  return {  tableData,  handleRowClick,  handleClickButton,  };  },  
};  
</script>

在这个例子中,使用了#default插槽来自定义name列的渲染。在这个插槽内部,添加了一个文本<span>来显示名字,并添加了一个<el-button>按钮。按钮上绑定了点击事件@click.stop="handleClickButton(row)",其中.stop修饰符用于阻止事件冒泡。这样,当按钮被点击时,只会触发handleClickButton方法,而不会触发绑定在整行上的handleRowClick方法。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 老师怎样用微信发布月考成绩?
  • TensorFlow介绍二-线性回归案例
  • 【鸿蒙HarmonyOS NEXT】List组件的使用
  • Spring 源码解读:实现Spring容器的启动流程
  • SAP B1 三大基本表单标准功能介绍-物料主数据(下)
  • 嵌入式软件开发学习三:中断
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十一)
  • VMware安装windows虚拟机详细过程
  • HTTP 之 Web Sockets 安全策略(十)
  • 大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction
  • 国际化产品经理的挑战与机遇:跨文化产品管理的探索
  • 大数据新视界--大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望
  • CentOS全面停服,国产化提速,央国企信创即时通讯/协同门户如何选型?
  • 开源模型应用落地-LangChain高阶-记忆组件-ConversationTokenBufferMemory正确使用(七)
  • 深度学习-OpenCv的运用(4)
  • [PHP内核探索]PHP中的哈希表
  • [译] React v16.8: 含有Hooks的版本
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • javascript 总结(常用工具类的封装)
  • log4j2输出到kafka
  • vue脚手架vue-cli
  • windows下使用nginx调试简介
  • 闭包--闭包之tab栏切换(四)
  • 搞机器学习要哪些技能
  • 简单易用的leetcode开发测试工具(npm)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​queue --- 一个同步的队列类​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #define 用法
  • #laravel 通过手动安装依赖PHPExcel#
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)无线电失控保护(二)
  • (20050108)又读《平凡的世界》
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (回溯) LeetCode 77. 组合
  • (全注解开发)学习Spring-MVC的第三天
  • (转)mysql使用Navicat 导出和导入数据库
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Micro Framework初体验(二)
  • .net mvc 获取url中controller和action
  • .NET Standard 的管理策略
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • :“Failed to access IIS metabase”解决方法
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [AIGC] Redis基础命令集详细介绍
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C#学习笔记]LINQ
  • [C++]——带你学习类和对象