定义全局键盘监听事件,el-dialog中删除不可用

news/2024/11/14 2:36:51/

场景:全局的div增加了鼠标监听事件,而且window中添加了键盘监听事件。

window.addEventListener('keydown', this.handleKeydown)

window.addEventListener('keyup', this.handleKeyup)

事件冒泡,导致阻止无效。

1、在 el-dialog 上同时阻止默认行为和冒泡

javascript"><el-dialog@keydown.stop.prevent// ... other props ...
>// ... dialog content ...
</el-dialog>

在el-dialog上添加 @keydown.stop.prevent。可能会导致全部键盘不可用。

2、在 dialog 内部的输入元素上直接处理

javascript"><el-dialog><el-input@keydown.stop.prevent.native// ... other props .../>// ... other content ...
</el-dialog>

3、在全局键盘事件处理器中添加判断,忽略来自 dialog 的事件

javascript">// 全局键盘事件处理器
handleKeyDown(event) {// 检查事件源是否在 dialog 内const isInDialog = event.target.closest('.el-dialog');if (isInDialog) {return; // 如果在 dialog 内,直接返回不处理}// 原有的键盘事件处理逻辑// ... existing code ...
}

亲测有效!!!

4、使用 v-if 条件来控制全局键盘事件的监听

javascript">// 在组件中添加一个控制变量
data() {return {isDialogVisible: false,// ... other data}
}// 在模板中
<div @keydown="isDialogVisible ? null : handleKeyDown"// ... other attributes
><el-dialogv-model="isDialogVisible"// ... other props>// ... dialog content ...</el-dialog>
</div>


http://www.ppmy.cn/news/1546038.html

相关文章

ONLYOFFICE 8.2深度测评:集成PDF编辑、数据可视化与AI功能的强大办公套件

本文 一、文档编辑与PDF支持主要功能概述 二、数据可视化和增强的表格工具数据可视化功能亮点 三、AI驱动的摘要功能AI摘要功能优势 四、演示文稿的增强功能主要更新 五、协同办公能力的提升协同功能更新 六、跨平台兼容与开放文档格式跨平台与兼容性 七、安全性与隐私保护安全…

Flink转换算子

Apache Flink 是一个用于处理无界和有界数据的开源流处理框架。在 Flink 中&#xff0c;转换&#xff08;Transformation&#xff09;是数据流处理的核心组件之一&#xff0c;它们定义了如何从输入数据集生成输出数据集。以下是 Flink 中一些常见的转换算子&#xff1a; Map: 将…

【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集

命名实体识别 (NER) 是自然语言处理 (NLP) 中的一项重要任务&#xff0c;用于自动识别和分类文本中的实体&#xff0c;例如人物、位置、组织等。尽管它很重要&#xff0c;但手动注释大型数据集以进行 NER 既耗时又费钱。受本文 ( https://huggingface.co/blog/synthetic-data-s…

谐振式DCDC设计与参数计算 - 笔记汇聚

技术问题 - 笔记目录 Q1.工作频点与切换频点是什么关系&#xff1f; 当考虑电路应对外部电压波动&#xff0c;和输出负载波动&#xff0c;需要选择最低增益点外侧的&#xff0c;以及最高增益与最最低增益的的增益顶点连线的上方区域——一句话&#xff1a;感性区域&#xff1…

Mysql基础 01 数据与sql

文章目录 一、基本概念二、mysql的常用命令三、sql规范四、数据类型五、SQL语句 一、基本概念 数据库(database,DB)&#xff1a;存储数据的仓库。 数据库管理系统软件(Database Management System,DBMS)&#xff1a;是一种操作和管理数据库的大型软件。常见的DBMS有oracle、s…

DataFrame

目录 一、创建DataFrame二、Sql语法三、DSL语法四、RDD与DataFrame互相转换 一、创建DataFrame 在SparkSql中SparkSession是创建DataFrame和执行Sql的入口&#xff0c;创建DataFrame有三种方式&#xff1a; 通过Spark的数据源进行创建 从一个存在的RDD进行转换 从Hive Tabl…

SQL进阶技巧:如何计算复合增长率?

目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 复合增长率是第N期的数据除以第一期的基准数据,然后开N-1次方再减去1得到的结果。假如2018年的产品销售额为10000,2019年的产品销售额为12500,2020年的产品销售额为15000(销售额单位省略,下同)​。那么这两…

【Ag-Grid】 使用笔记 Vue3 + Vite(一)

文章目录 安装基础使用列数据可编辑列数据选择填入行数据可选择添加分页信息表头整体添加模糊筛选让某一个 Cell 或者 Row 变色 参考代码基本代码整体代码&#xff08;一&#xff09; 安装 首先用 vite 脚手架搭建一个空的项目&#xff0c;然后依赖安装 pnpm install ag-grid…