Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Javascript의 이벤트 흐름 프로세스 설명

<시간/>

JavaScript에서 이벤트 흐름 프로세스는 세 가지 개념으로 완료됩니다. -

  • 이벤트 대상 - 이벤트가 발생한 실제 DOM 개체입니다.

  • 이벤트 버블링 - 아래 설명

  • 이벤트 캡처 - 아래 설명

이벤트 버블링은 한 요소가 두 번째 요소 내부에 중첩되고 두 요소가 동일한 이벤트(예:클릭)에 대한 리스너를 등록할 때 이벤트 핸들러가 호출되는 순서입니다. 버블링을 사용하면 이벤트가 먼저 가장 안쪽 요소에서 캡처되고 처리된 다음 바깥쪽 요소로 전파됩니다.

캡처를 사용하면 이벤트가 먼저 가장 바깥쪽 요소에 의해 캡처되고 내부 요소로 전파됩니다.

둘 다의 예를 살펴보겠습니다.

다음 두 예 모두에 대해 다음 HTML을 작성하십시오 -

예시

<div id='outer' style='background-color:red;display:inline-block;padding:50px;'>
   Outer Div
   <div id='inner' style='background-color:yellow;display:inline-block;padding:50px;'>
      Inner Div
   </div>
</div>

이벤트 버블링

document.querySelector('#outer').addEventListener('click', e => {
   console.log('Outer div is clicked');
}, false);
document.querySelector('#inner').addEventListener('click', e => {
   console.log('Inner div is clicked');
}, false);

위의 코드를 실행하고 내부 div를 클릭하면 로그가 표시됩니다 -

내부 div를 클릭했습니다.

외부 div를 클릭했습니다.

이벤트 캡처

document.querySelector('#outer').addEventListener('click', e => {
   console.log('Outer div is clicked');
}, true);
document.querySelector('#inner').addEventListener('click', e => {
   console.log('Inner div is clicked');
}, true);

출력

위의 코드를 실행하고 내부 div를 클릭하면 로그가 표시됩니다 -

Outer div is clicked
Inner div is clicked