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

wordpress pre标签鸡西网站seo

wordpress pre标签,鸡西网站seo,大渡口网站建设,wordpress设置树形在 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/320029.html

相关文章:

  • 南阳交友网站开发公司软广告经典例子
  • 武汉做网站云优化科技百度怎么做广告
  • 企业邮箱163登录入口邢台市seo服务
  • 成都哪家做网站品牌营销策划方案
  • 部门网站建设的目的和意义郑州网络推广培训
  • 濮阳网站设计公司seo优化是啥
  • 旅游门户网站建设百度开发平台
  • 可以做四级听力的网站搜索引擎营销案例有哪些
  • 网站建设问卷优化网站关键词排名
  • 日照 网站建设百度推广找谁做靠谱
  • 网站策划师郑州网站建设制作
  • 简单企业网站源码 asp.net 公司介绍 产品展示蚌埠seo外包
  • 重庆有哪些做网站公司好百度提交入口地址在哪
  • 网站被k是怎么回事2022千锋教育培训收费一览表
  • wordpress数据库加密公司百度官网优化
  • 电子商务网站前台建设常用的技术有自己网站怎么推广
  • 杭州网站建设杭州沃迩夫随机关键词生成器
  • 南通网站排名优化报价百度广告联盟app
  • 网站添加新闻栏怎么做网上售卖平台有哪些
  • wordpress 哪些网站吗客户营销
  • 注册网站域名有什么用建立网站一般要多少钱
  • 聊城网站建设培训班百度免费注册
  • 滨海做网站需要多少钱seo学校培训
  • 网站如何做进一步优化新闻今天最新消息
  • 房产网站建设方案百度快速收录网站
  • 移动app做的好的网站潍坊网站排名提升
  • 网站建设会计分录怎么写河南做网站的公司
  • 无锡手机网站制作费用百度搜索排行seo
  • 厦门孚珀科技 网站开发seo推广专员工作内容
  • 网站开发需要注册几类商标营销成功的案例