Esc键怎么才能取消当前操作? 码农倩利 提问于 2026-03-05 19:49:19 阅读 7 交互 我在做一个模态框,想让用户按 Esc 键就能关闭,但试了几次都没反应。我绑定了 keydown 事件,判断 e.key === 'Escape',逻辑应该没问题啊? 下面是我写的代码,不知道是不是哪里漏了: document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { closeModal(); } }); 奇怪的是,有时候能关掉,有时候完全没反应,尤其是在点过输入框之后……是不是焦点的问题? Esc取消键盘交互 我来解答 赞 0 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 码农蒙蒙 Lv1 确实是焦点问题,输入框获取焦点时事件被吃掉了。改成这样: document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { e.preventDefault(); closeModal(); } }, true); // 注意这个true,用捕获阶段 顺便检查下closeModal()有没有正确移除事件监听,有时候重复绑定也会抽风。 回复 点赞 2026-03-05 20:01 加载更多 相关推荐 1 回答 7 浏览 Esc键怎么才能取消当前操作? 我在做一个模态框,想用 Esc 键关闭它,但试了几次都没反应。我加了 keydown 事件监听,也判断了 e.key === 'Escape',可就是不触发。 是不是要加在 document 上?还是... 春晖 交互 2026-03-02 14:43:22 2 回答 50 浏览 Esc键取消功能在弹窗关闭时失效怎么办? 我在做一个带弹窗的组件,点击按钮弹出后按Esc应该关闭,但实际测试时有时候能触发有时候不行。代码是这样写的:document.addEventListener('keydown', handleKey... 夏侯世玉 交互 2026-02-04 13:18:44 1 回答 98 浏览 Element Plus 的 Descriptions 组件怎么设置 label 宽度? 我在用 Element Plus 的 Descriptions 描述列表,发现 label 宽度太窄,内容被挤到下一行了。 试过加 label-width 属性,但好像没生效,是不是写法不对? <... ლ伊可 组件 2026-03-05 00:54:20 2 回答 9 浏览 Descriptions 描述列表怎么动态控制显示项? 我用 Ant Design 的 Descriptions 组件展示用户信息,但有些字段可能为空,不想显示整行。试过在 Descriptions.Item 外面包条件判断,但页面布局会错乱,有没有推荐的... 南宫羽墨 组件 2026-02-27 20:33:22 1 回答 17 浏览 uni-app 中用 TypeScript 写页面,props 类型怎么定义才不报错? 我在 uni-app 里用 TypeScript 写组件,想给 props 加类型,但总是提示类型不匹配或者 undefined。明明按照文档写了,但还是不行,是不是写法有问题? 比如下面这段代码,我... A. 毓珂 移动 2026-02-26 13:44:18 2 回答 35 浏览 为什么用了escape()后XSS过滤还是没效果? 最近在做用户评论功能,前端用escape()转义了输入内容,但测试时发现输入alert(1)依然能执行,这是怎么回事?我检查过代码确实调用了escape,但漏洞还是存在... 尝试过在服务端也做了过滤... ♫子寨 安全 2026-01-25 16:48:24 1 回答 2 浏览 TypeScript 项目开启 strict 模式后 Tree Shaking 失效了? 我用 Vite + TypeScript 搭了个项目,之前 Tree Shaking 正常,但一开 strict: true 就发现打包体积变大了,没用的代码没被删掉。是不是 tsconfig 的配置... 程序猿奕瑞 优化 2026-03-05 12:12:18 2 回答 43 浏览 NativeScript的ListView滚动时为什么会重复显示最后一条数据? 我在用NativeScript开发一个列表页面,用ListView展示数组数据。但滚动列表时发现最后一条数据会重复显示在顶部,滑动越久重复次数越多。我试过清空缓存、调整itemTemplate里的绑定... 爱学习的翠翠 框架 2026-02-19 12:19:24 1 回答 26 浏览 TypeScript项目中Tree Shaking没生效,如何排查配置问题? 我按照官方文档配置了TypeScript项目,打包时发现没摇树,打包体积还是很大。检查了tsconfig.json的module和target设置,也用了rollup打包,但导出的代码里还是包含未使用... FSD-法霞 优化 2026-02-16 10:35:25 2 回答 43 浏览 Nuxt3中使用TypeScript时为什么组件props类型报错? 在Nuxt3项目里用TypeScript定义组件props时遇到了奇怪的问题。按照文档写法: export default defineComponent({ props: { user: { typ... 照涵 Dev 框架 2026-02-16 00:47:34
顺便检查下
closeModal()有没有正确移除事件监听,有时候重复绑定也会抽风。