728x90
[mouseEnter&mouseLeave]
import { useState } from "react";
import './EventCompare.css'
const EventCompare = () => {
const [result, setResult] = useState('');
const handleIn = e => setResult(r => `${r}Enter: ${e.target.id}<br/>`);
const handleOut = e => setResult(r => `${r}Leave: ${e.target.id}<br/>`);
return (
<>
<div id="outer"
onMouseEnter={handleIn}
onMouseLeave={handleOut}
>
외부 (outer)
<p id="inner">
내부(inner)
</p>
</div>
<div dangerouslySetInnerHTML={{ __html: result }}></div>
</>
)
}
export default EventCompare;
react 소스를 보면
outer에만 이벤트를 걸어놨다.
수평으로 마우스가 지나간다고 할 때
결과값은 아래와 같다
inner에 mouseEnter가 되어도
감지가 안된다.
mouseOver&mouseOut를 살펴보자
[mouseOver&mouseOut]
import { useState } from "react";
import './EventCompare.css'
const EventCompare = () => {
const [result, setResult] = useState('');
const handleIn = e => setResult(r => `${r}Enter: ${e.target.id}<br/>`);
const handleOut = e => setResult(r => `${r}Leave: ${e.target.id}<br/>`);
return (
<>
<div id="outer"
onMouseOver={handleIn} // <<<<<<<<<<<< 여기바뀜
onMouseOut={handleOut} // <<<<<<<<<<<< 여기바뀜
>
외부 (outer)
<p id="inner">
내부(inner)
</p>
</div>
<div dangerouslySetInnerHTML={{ __html: result }}></div>
</>
)
}
export default EventCompare;
1) outer에 Over감지 Out감지
2) inner에 Over감지 Out감지
3) outer에 Over감지 Out감지
mouseOver는 캡처링되어
자식요소까지 이벤트가 걸리는 것을 볼 수 있다.
'Javascript Tips' 카테고리의 다른 글
캐릭터메신저구현기 - getBoundingClientRect, offsetTop(Left), clientWidth(Height) (0) | 2025.04.03 |
---|---|
screen, page, offset, client차이를 잘 보여주는 그림 (0) | 2024.12.22 |
React - 이미지경로를 src에 바로 넣으면 안되는 이유 (1) | 2024.11.29 |
react-router-dom 라이브러리 갑자기 에러나는 현상 (0) | 2024.11.29 |
react - spa nginx 배포 후 새로고침시 흰화면 (0) | 2024.11.28 |