el-drawer注册全局点击事件无效;el-dialog注册全局点击事件无效

提示:el-drawer或el-dialog注册全局点击事件无效,即抽屉或弹框外点击会触发事件,但抽屉和弹框内点击无反应

目前通过方案2:使用捕获阶段(推荐)解决


文章目录

    • 解决方案
      • 方案1:将事件监听器改为 `document`
      • 方案2:使用捕获阶段(推荐)
      • 方案3:检查事件路径
      • 方案4:针对 el-drawer 的特殊处理
      • 方案5:使用 Vue 的自定义事件(如果 drawer 是子组件)
    • 调试建议

这是因为事件冒泡被阻止了。el-drawer组件内部的事件默认不会冒泡到window,这可能是因为:

  1. el-drawer阻止了事件冒泡(事件修饰符.stop
  2. 事件目标被判断为不在window
  3. el-drawer的层叠上下文导致事件被拦截

解决方案

方案1:将事件监听器改为document

onMounted(()=>{document.addEventListener("click",clearFlag)})onBeforeUnmount(()=>{document.removeEventListener("click",clearFlag)})

方案2:使用捕获阶段(推荐)

onMounted(()=>{document.addEventListener("click",clearFlag,true)// 第三个参数 true 表示捕获阶段})onBeforeUnmount(()=>{document.removeEventListener("click",clearFlag,true)})

方案3:检查事件路径

如果上面的方法无效,可以检查事件是否被阻止:

constclearFlag=(event)=>{console.log('事件触发',event.target)console.log('事件路径',event.composedPath())// 检查是否被阻止console.log('defaultPrevented',event.defaultPrevented)}

方案4:针对 el-drawer 的特殊处理

import{nextTick}from'vue'onMounted(()=>{nextTick(()=>{// 获取 drawer 的 DOMconstdrawer=document.querySelector('.el-drawer')if(drawer){drawer.addEventListener('click',clearFlag)}// 同时监听 document 作为后备document.addEventListener('click',clearFlag)})})onBeforeUnmount(()=>{constdrawer=document.querySelector('.el-drawer')if(drawer){drawer.removeEventListener('click',clearFlag)}document.removeEventListener('click',clearFlag)})

方案5:使用 Vue 的自定义事件(如果 drawer 是子组件)

<!-- 父组件 --> <template> <ChildDrawer @drawer-click="clearFlag" /> </template> <!-- 子组件 drawer 内部 --> <template> <el-drawer> <div @click="$emit('drawer-click')"> <!-- 内容 --> </div> </el-drawer> </template>

调试建议

constclearFlag=(event)=>{console.log('事件触发',{target:event.target,currentTarget:event.currentTarget,eventPhase:event.eventPhase,// 1: 捕获, 2: 目标, 3: 冒泡bubbles:event.bubbles,// 是否冒泡defaultPrevented:event.defaultPrevented,composed:event.composed,// 是否能跨越 Shadow DOM})}

推荐先用方案1或方案2,大多数情况下将window改为document并使用捕获阶段就能解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Matlab的车牌识别系统:模板匹配与神经网络的探索

基于matlab的车牌识别系统&#xff0c;可以用模板匹配设计也可以用网络神经算法&#xff0c;全网最全资料在智能交通日益发展的今天&#xff0c;车牌识别系统成为了一个热门的研究与应用领域。Matlab以其强大的矩阵运算能力和丰富的工具箱&#xff0c;为我们实现车牌识别系统提…

Live Avatar A/B测试框架:不同参数组合效果对比实验

Live Avatar A/B测试框架&#xff1a;不同参数组合效果对比实验 1. 引言 1.1 技术背景与选型需求 随着数字人技术的快速发展&#xff0c;阿里联合高校开源的Live Avatar模型为实时语音驱动数字人视频生成提供了新的可能性。该模型基于14B参数规模的DiT架构&#xff0c;支持从…

深入剖析艾默生15kW充电桩与台达三相PFC技术

艾默生充电15kw台达三相PFC源程序 艾默生充电桩15kw模块台达三相PFC源码&#xff0c;软件源码加原理 图BOM 艾默生充电桩15kw模块原版软件源码含核心算法&#xff0c;PFCDCDC双DSP数字控制&#xff0c;原理图&#xff0c;BOM和PCB&#xff08;PDF版)&#xff0c;所有资料完全配…

Wan2.2-T2V-A5B详解:轻量化设计背后的模型蒸馏技术解析

Wan2.2-T2V-A5B详解&#xff1a;轻量化设计背后的模型蒸馏技术解析 1. 技术背景与问题提出 近年来&#xff0c;文本到视频&#xff08;Text-to-Video, T2V&#xff09;生成技术在内容创作、广告设计和影视预演等领域展现出巨大潜力。然而&#xff0c;主流T2V模型通常参数量庞…

搜嗖工具箱|哪些助你打开天窗的工具网站

如今的世界早已不是那个一招鲜质变天的时代,不学习就会被淘汰,无论那个领域那个地方皆是如此。当下早已陈给一个人人卷学习,个个求精进的全面学习时代。有人说躺平很舒服很好,但看看身边人又有谁真正的决定躺平的呢…

STM32上进行Unix时间戳转换

1.Unix时间戳简介 Unix时间戳(Unix Timestamp)是一种时间表示方式,定义为从1970年1月1日00:00:00 UTC(协调世界时)起经过的总秒数(不考虑闰秒)。 2.MDK程序简单分析 程序首先将stTime1中的unix时间戳变量赋个初…

RAG技术实战指南:让大模型读懂企业知识,LLaMA-Factory Online 赋能落地

RAG技术实战指南:让大模型读懂企业知识,LLaMA-Factory Online 赋能落地RAG技术实战指南:让大模型读懂企业知识,LLaMA-Factory Online 赋能落地* 在AI商业化落地进程中,RAG(检索增强生成)是解决大模型“不懂企业…

大模型在创新设计推理任务中的表现

大模型在创新设计推理任务中的表现 关键词:大模型、创新设计推理、表现评估、技术原理、应用场景 摘要:本文聚焦于大模型在创新设计推理任务中的表现。首先介绍了研究的背景,包括目的、预期读者、文档结构和相关术语。接着阐述了大模型与创新设计推理的核心概念及联系,分析…

基于ssm的学校社团管理系统设计与实现3rz25768(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表开题报告内容基于SSM的学校社团管理系统设计与实现开题报告一、选题背景与意义&#xff08;一&#xff09;选题背景随着高校教育改革的不断深入和学生综合素质培养需求的提升&#xff0c;学校社团作为学生课外活动的重要载体&#xff0c;其数量与规模日益扩大。…

GB28181: 使用ffmpeg编码h264为ps流

先说结论&#xff1a; 不建议使用ffmpeg作为ps流编码器&#xff0c; 使用ffmpeg编码ps&#xff0c;可用&#xff0c;但不可控&#xff0c;存在隐性风险 不会自动插入 AUD不保证 SPS/PPS 重复 而很多 GB28181 平台要求&#xff1a;1、关键帧的封装 PS header PS system header …

30秒极速上手:大模型个人开发者如何零门槛使用 n1n.ai?

摘要&#xff1a;觉得 n1n.ai 只面向企业&#xff1f;错&#xff01;本文专为个人 AI 开发者编写&#xff0c;手把手教你如何 30秒 内注册、获取 LLM API 密钥并跑通第一行 AI 大模型 代码。拒绝繁琐审核&#xff0c;立即开启 AI 大模型 之旅。 目录 误区粉碎&#xff1a;个人…

TB352XC原厂刷机包下载_CN_ZUI_17

原厂刷机包下载https://pan.quark.cn/s/f2fbfca96944 含国内和国际版系统,具体刷入方法自测 联想平板电脑昭阳K11 TB352XC 11.5英寸2k 90Hz高刷 Pad原厂刷机包下载

基于SSM的个人健康系统26vxdh02(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表开题报告内容基于SSM的个人健康系统开题报告一、研究背景与意义&#xff08;一&#xff09;研究背景随着社会经济的快速发展和生活节奏的加快&#xff0c;人们的健康问题日益凸显。慢性疾病的发病率不断上升&#xff0c;健康管理的需求也随之增加。传统的健康管…

LLMs之MoE之Thinking:LongCat-Flash-Thinking-2601的简介、安装和使用方法、案例应用之详细攻略

LLMs之MoE之Thinking&#xff1a;LongCat-Flash-Thinking-2601的简介、安装和使用方法、案例应用之详细攻略 目录 LongCat-Flash-Thinking-2601的简介 1、特点 XXX的安装和使用方法 1、安装 2、使用方法 聊天模板概览 部署 在线体验 3、代码示例 多轮对话 (Multi-Tur…

原则 - hacker

总结一下: 1. 人是生物还是机器?瑞达利欧认为,人本质上是一台可被调试的“机器”,通过系统化思维、原则和算法,可以像工程师修理零件一样优化人生,实现精准的成功输出。 2. 从失败中进化:痛苦+反思=进步 达利欧…

Dump分析日记2

步骤 命令 / 操作 场景与目的 关键回显 / 判断标准0 windbg -z IT.Store.dll.31676.dmp 打开 dump 文件 提示 User Mini Dump File with Full Memory 即 OK1 .symfix + .reload 自动设置微软公共符号服务器并拉取符号 …

【大数据】Apache Calcite架构:从 SQL 到执行计划的转换框架

文章目录一、Calcite 架构&#xff1a;只做 SQL 访问框架&#xff0c;不做存储和计算二、Calcite 处理流程&#xff1a;SQL 字符串到执行结果的五阶段转换三、SQL 解析&#xff1a;从字符串到抽象语法树&#xff08;SQL → SqlNode&#xff09;四、SQL 验证&#xff1a;确保语法…

【2026最新】微软常用运行库合集下载安装使用教程(附安装包+图文步骤)

所谓微软常用运行库合集&#xff0c;并不是微软官方打包发布的单一软件&#xff0c;而是国内维护者把从 Visual C 2005 到 2022 各代运行库、Visual Basic 虚拟机、Universal C Runtime、.NET Framework 等几十款系统组件做成的一张“全家桶”安装盘&#xff0c;一键勾选就能把…

基于微信小程序的互助学习平台【源码+文档+调试】

&#x1f525;&#x1f525;作者&#xff1a; 米罗老师 &#x1f525;&#x1f525;个人简介&#xff1a;混迹java圈十余年&#xff0c;精通Java、小程序、数据库等。 &#x1f525;&#x1f525;各类成品Java毕设 。javaweb&#xff0c;ssm&#xff0c;springboot等项目&#…

亚马逊店铺流量突破:从关键词优化到自养号测评的全攻略

在如今竞争白热化的电商市场环境下&#xff0c;亚马逊新店铺想要在琳琅满目的竞争者中崭露头角&#xff0c;实现流量的有效提升&#xff0c;已然成为众多新手卖家面临的一大棘手难题。对于初涉亚马逊平台的卖家而言&#xff0c;精准掌握行之有效的流量提升策略&#xff0c;无疑…