網站首頁 編程語言 正文
在工作中遇到一個這個小功能,就是當用戶從A輸入框中失焦后,要去判斷當前的焦點是否在B輸入框中,如果是的話需要做一些特殊操作.其實實現起來很簡單,就是使用ref配合document.activeElement方法即可實現,以下是實現的具體邏輯
import React from "react";
// 當在A輸入框中失焦之后,要判斷當前焦點是否在B輸入框中
export default class App extends React.Component {
constructor(props) {
super(props);
this.txt = {
curren: null,
};
}
// 當A組件失焦后觸發
blur_handler = () => {
setTimeout(() => {
// 獲取當前選中的元素
const focus = document.activeElement;
// 判斷當前選中元素是否為B輸入框
if (focus === this.txt) {
console.log("當前焦點聚焦在B輸入框中");
}else{
console.log("當前焦點聚焦不在B輸入框中");
}
});
};
getBRef = (el) => {
this.txt = el;
};
render() {
return (
<div>
<input type="text" placeholder="A輸入框" onBlur={this.blur_handler} />
<input type="text" placeholder="B輸入框" ref={this.getBRef} />
</div>
);
}
}
tips:因為我在工作中使用的input元素是經過第三方庫去處理過的,所以當使用ref獲取到該元素時,獲取到的并不是input元素本身,而是將input元素包裹了一層的對象,那么此時可以使用.input的方式去獲取真正的input元素.如果使用以上方法不能獲取到對應dom元素的話,不妨像我這樣操作下試試~
原文鏈接:https://blog.csdn.net/huanan__/article/details/126950725
相關推薦
- 2022-02-20 react中引入百度地圖時,去掉百度地圖的logo和信息
- 2022-05-10 Element-ui 中的 Select 組件用(深度)選擇器修改默認樣式不生效的問題及如何使用 p
- 2022-10-12 Docker部署搭建WebDav服務的詳細過程_docker
- 2022-07-19 react組件通訊的基本使用props
- 2023-04-06 C語言中雙鏈表的基本操作_C 語言
- 2022-05-25 flutter實現底部導航欄_Android
- 2022-05-11 springboot多版本管理
- 2022-08-18 Redis7.0部署集群的實現步驟_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支