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

浏览器的全局焦点事件

浏览器的独立的全局焦点管理事件
  1. 点击任何元素都会自动触发焦点重计算

  2. 系统会先移除当前焦点元素的焦点

  3. 然后判断新点击元素是否可聚焦

  4. 整个过程:

    • 独立于事件冒泡机制

    • 发生在事件传播之前

    • 是浏览器底层行为

因此,点击普通 div 导致 input 失焦:

  • 不是事件冒泡造成

  • 不是 div 有特殊逻辑

  • 而是浏览器焦点管理系统的标准行为

在需要保持焦点的场景,我们可以:

  • 阻止 mousedown 的默认行为

  • 手动调用 focus() 方法保持焦点"

业务场景:

在表格里有表单,点击这一行表格会路由跳转,在表单里修改东西时,失焦保存或者输入文本时,可能会触发表格的点击事件,导致跳转,这肯定不行,那应该如何阻止表单的点击事件呢?

首先input的失焦事件是blur,这个事件是属于浏览器进行监管,这个失焦事件执行完了之后,才会去执行点击事件,所以我们可以给这个失焦事件写一个变量进行判断(默认值为true),一旦为false,点击事件就不执行

<script setup>
import { reactive,ref } from 'vue'
const product =reactive({price:0
})
const isRun=ref(true)
const savePrice =() =>{console.log("保存价格到服务器")isRun.value=false
}
const goToDetail =() =>{console.log(isRun.value)if(isRun.value){console.log("跳转")}else{isRun.value=truereturn}
}     
</script>
<template><table><tr @click="goToDetail" style="background-color: pink;"><td><input v-model="product.price" @blur="savePrice"@click.stop></td></tr>
</table>
</template>
http://www.dtcms.com/a/311874.html

相关文章:

  • 内循环全部满足条件后,为true
  • 大型地面光伏电站开发建设流程
  • IO流-字节流
  • c++--模板--实例化
  • ARM处理器概述及对比
  • 2025熵密杯 -- 初始谜题 -- Reproducibility
  • 基于落霞归雁思维框架的应用与实践研究
  • 计数组合学7.11(RSK算法)
  • Android动画实现控件形状、大小逐渐过渡
  • 智能制造——解读CMMM评估手册【附全文阅读】
  • DyWA:用于可推广的非抓握操作的动态自适应世界动作模型
  • 硅基计划3.0 学习总结 伍 优先级队列排序初识
  • 【Vue3】Class绑定:从基础到高级的完整指南
  • Web前端实现银河粒子流动特效的3种技术方案对比与实践
  • 【完结篇】华为OpenStack架构学习9篇 连载—— 09 OpenStack编排管理【附全文阅读】
  • 深入 Go 底层原理(三):Goroutine 的调度策略
  • OSPF综合
  • VS Code高效开发指南:快捷键与配置优化详解
  • 深入 Go 底层原理(十二):map 的实现与哈希冲突
  • Mybatis学习之获取参数值(四)
  • 字符串(java不死)
  • c++之基础B(进制转换)(第三课)
  • 详解Python标准库之并发执行
  • AI Agent开发学习系列 - LangGraph(3): 有多个输入的Graph
  • C#多数据库批量执行脚本工具
  • OneCode3.0 核心表达式技术深度剖析:从架构设计到动态扩展
  • 波士顿咨询校招面试轮次及应对策略解析
  • 双机并联无功环流抑制虚拟阻抗VSG控制【simulink仿真模型实现】
  • OneCodeServer 架构深度解析:从组件设计到运行时机制
  • 「iOS」————weak底层原理