티스토리 뷰



  • focusin, focusout : 버블링 발생함
  • focus, blur : 버블링 발생안함



부모가 div고 내부에 input 요소가 있을때


input 요소에 focusin 되면 부모 div에도 그 이벤트가 전달된다.

input 요소에 focus 되면 부모 div에는 그 이벤트가 전달되지 않는다.



정리


1. 동일한 결과를 예상하고 싶을때

focusin과 focusout를 함께, focus와 blur를 함께 사용하자.


2. input에 포커스되거나 잃어버렸을때, 부모요소에서 리스너를 동작하고 싶다면

focusin과 focusout을 사용하자.




1
2
3
<div class="parent">
    <input type="text">
</div>

cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
 
$('.parent').focusin(function(){
    console.log('부모 focusin!');
});
$('input').focusin(function(){
    console.log('인풋 focusin!');
});
$('.parent').focus(function(){
    console.log('부모 focus!');
});
$('input').focus(function(){
    console.log('인풋 focus!');
});
 
</script>
cs


input에 포커스되면 


인풋 focusin!

부모 focusin!

인풋 focus!


이라고 뜸. 부모에 focus/blur 이벤트는 전달되지 않은걸 확인할 수 있다. 








'javascript > jQuery' 카테고리의 다른 글

jQuery 컨닝 페이퍼 : jQuery Cheat Sheet  (0) 2018.01.25
댓글
Kakao 다음웹툰 / 웹표준 및 ft기술, 웹접근성 / 세아이 아빠, 제주 거주 중..
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday