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

wordpress pre标签网站seo优化心得

wordpress pre标签,网站seo优化心得,网站建设使用什么软件比较好,建设厅网站业绩备案公示期在 JavaScript/React 中判断一个特定 class 的元素是否处于焦点状态,可以通过以下几种方式实现: 原生 JavaScript 方法 // 获取第一个具有 overviewUndoBtn 类的元素 const element document.querySelector(.overviewUndoBtn);// 检查是否获得焦点 if…

在 JavaScript/React 中判断一个特定 class 的元素是否处于焦点状态,可以通过以下几种方式实现:

原生 JavaScript 方法

// 获取第一个具有 overviewUndoBtn 类的元素
const element = document.querySelector('.overviewUndoBtn');// 检查是否获得焦点
if (element && document.activeElement === element) {console.log('overviewUndoBtn 元素当前获得焦点');
} else {console.log('overviewUndoBtn 元素未获得焦点');
}

React 方法(使用 ref)

如果你在 React 组件中需要检查:

import { useRef, useEffect } from 'react';function MyComponent() {const undoBtnRef = useRef(null);useEffect(() => {const checkFocus = () => {if (document.activeElement === undoBtnRef.current) {console.log('按钮当前获得焦点');// 执行相关操作}};// 可以添加事件监听来实时检测const btn = undoBtnRef.current;btn?.addEventListener('focus', checkFocus);btn?.addEventListener('blur', checkFocus);return () => {btn?.removeEventListener('focus', checkFocus);btn?.removeEventListener('blur', checkFocus);};}, []);return (<button className="overviewUndoBtn"ref={undoBtnRef}>撤销按钮</button>);
}

更完整的 React 钩子实现

可以创建一个自定义钩子来复用这个逻辑:

import { useRef, useState, useEffect } from 'react';function useFocusStatus(className) {const [hasFocus, setHasFocus] = useState(false);const elementRef = useRef(null);useEffect(() => {const element = elementRef.current || document.querySelector(`.${className}`);if (!element) return;const handleFocus = () => setHasFocus(true);const handleBlur = () => setHasFocus(false);element.addEventListener('focus', handleFocus);element.addEventListener('blur', handleBlur);// 初始检查if (document.activeElement === element) {setHasFocus(true);}return () => {element.removeEventListener('focus', handleFocus);element.removeEventListener('blur', handleBlur);};}, [className]);return { hasFocus, elementRef };
}// 使用示例
function MyComponent() {const { hasFocus, elementRef } = useFocusStatus('overviewUndoBtn');return (<div><button className="overviewUndoBtn" ref={elementRef}>撤销按钮</button><p>按钮焦点状态: {hasFocus ? '已获取' : '未获取'}</p></div>);
}

注意事项

  1. 多个元素:如果有多个元素都有 overviewUndoBtn 类,querySelector 只会返回第一个,如果需要检查所有,使用 querySelectorAll 并遍历

  2. 动态元素:如果元素是动态加载的,可能需要使用 MutationObserver 来检测 DOM 变化

  3. React 18 Strict Mode:在开发模式下,useEffect 可能会执行两次,这是正常现象

  4. 无障碍考虑:焦点状态对于键盘用户很重要,确保焦点样式可见

  5. TypeScript 类型:如果需要类型安全,可以添加适当的类型注解

// 为自定义钩子添加类型
function useFocusStatus(className: string): {hasFocus: boolean;elementRef: React.RefObject<HTMLElement>;
} {// ...实现同上
}
http://www.dtcms.com/wzjs/184372.html

相关文章:

  • 布吉附近做网站百度seo是啥意思
  • 长沙网站优化掌营天下seo赚钱培训
  • 网站集约化建设工作打算手机百度引擎搜索入口
  • 建设网站定制北京网络营销推广公司
  • wordpress看文网站seo引擎优化工具
  • 中国最大的做网站公司免费技能培训在哪里报名
  • 邯郸网站设计报价广州seo外包
  • 怎么做套版网站百度入驻商家
  • 程序员源码网站设计案例网
  • idea 做网站登录淘宝美工培训
  • 怎么免费建自己的网站东莞营销型网站建设
  • wordpress怎装模板seo就业哪家好
  • 惠州品牌网站建设公司哪里有沪深300指数怎么买
  • 网站建设哪家技术好网站广告接入
  • 用javascirpt做的网站手机端关键词排名优化
  • 电子商务网站的建设费用案例自制网站 免费
  • 南阳高质量建设大城市网站昆明做网站的公司
  • 常宁市城乡和住房建设网站百度热点排行榜
  • 东丽区网站建设公司百度定位店铺位置怎么设置
  • 如何在腾讯云上建设网站百度推广登录入口官网
  • 集团网站策划方案seo是指
  • 手机网站建设 的作用看b站视频软件下载安装手机
  • 做网站要下载的软件营销策划书范文1000字
  • 实训做网站收获外贸网站都有哪些
  • 韩国男女做游戏视频网站seo关键词排名优化手机
  • 全网营销网站怎么做设计素材网站
  • 商务网站开发文档餐饮营销策划与运营
  • 广州建设银行网站首页营销目标分为三个方面
  • 重庆做网站哪家好东莞网络优化服务商
  • 小程序 网站建设 app 开发单页网站制作