javascript/jQuery
jQuery - focus/blur 와 focusin/focusout 의 차이
이브라히모비치
2015. 5. 29. 15:14
- 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> |
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 이벤트는 전달되지 않은걸 확인할 수 있다.