> 웹 프론트엔드 > JS 튜토리얼 > JavaScript로 이벤트 위임 익히기: 이벤트 처리 단순화

JavaScript로 이벤트 위임 익히기: 이벤트 처리 단순화

Susan Sarandon
풀어 주다: 2024-12-27 16:05:10
원래의
273명이 탐색했습니다.

Mastering Event Delegation in JavaScript: Simplify Event Handling

JavaScript의 이벤트 위임

이벤트 위임은 단일 이벤트 리스너를 사용하여 여러 하위 요소에 대한 이벤트를 처리하는 JavaScript 기술입니다. 이 접근 방식은 동적으로 생성된 요소나 여러 유사한 요소를 처리할 때 이벤트 버블링을 활용하여 성능을 향상하고 코드를 단순화합니다.


1. 이벤트위임이란 무엇인가요?

이벤트 리스너를 개별 하위 요소에 연결하는 대신 단일 리스너를 상위 요소에 연결합니다. 이 리스너는 하위 항목에서 발생하는 이벤트를 포착합니다.

작동 방식:

  1. 상위 요소에 이벤트 리스너를 추가합니다.
  2. event.target 속성을 사용하여 이벤트를 트리거한 하위 요소를 식별하세요.

2. 이벤트 위임의 장점

  • 향상된 성능: DOM의 이벤트 리스너 수를 줄입니다.
  • 동적 요소: 페이지 로드 후 동적으로 생성된 요소에 대한 이벤트를 쉽게 처리합니다.
  • 단순한 코드: 이벤트 처리 로직을 중앙 집중화합니다.

3. 이벤트 위임 예시

HTML 구조

<ul>



<h4>
  
  
  <strong>JavaScript</strong>
</h4>



<pre class="brush:php;toolbar:false">const menu = document.getElementById("menu");

menu.addEventListener("click", function(event) {
  if (event.target.tagName === "LI") {
    console.log("Clicked item:", event.target.textContent);
  }
});
로그인 후 복사
로그인 후 복사
  • 클릭 이벤트가 li 요소에서 ul 요소로 버블링됩니다.
  • if 문은 li 클릭만 처리되도록 합니다.

4. 동적 요소 처리

이벤트 위임은 동적으로 추가된 요소에 대한 이벤트를 관리하는 데 이상적입니다.

예:

const menu = document.getElementById("menu");

// Adding a new item dynamically
const newItem = document.createElement("li");
newItem.textContent = "Blog";
menu.appendChild(newItem);

// No need to add a new event listener
menu.addEventListener("click", function(event) {
  if (event.target.tagName === "LI") {
    console.log("Clicked item:", event.target.textContent);
  }
});
로그인 후 복사
로그인 후 복사

5. 바람직하지 않은 행위 예방

이벤트 처리를 제한하려면 stopPropagation() 또는 특정 조건을 사용하세요.

예:

<ul>



<h4>
  
  
  <strong>JavaScript</strong>
</h4>



<pre class="brush:php;toolbar:false">const menu = document.getElementById("menu");

menu.addEventListener("click", function(event) {
  if (event.target.tagName === "LI") {
    console.log("Clicked item:", event.target.textContent);
  }
});
로그인 후 복사
로그인 후 복사

6. 실제 적용

아. 인터랙티브 테이블

const menu = document.getElementById("menu");

// Adding a new item dynamically
const newItem = document.createElement("li");
newItem.textContent = "Blog";
menu.appendChild(newItem);

// No need to add a new event listener
menu.addEventListener("click", function(event) {
  if (event.target.tagName === "LI") {
    console.log("Clicked item:", event.target.textContent);
  }
});
로그인 후 복사
로그인 후 복사

베. 양식 검증

menu.addEventListener("click", function(event) {
  if (event.target.tagName === "LI") {
    console.log("Clicked item:", event.target.textContent);
  } else {
    event.stopPropagation(); // Stop propagation for non-LI elements
  }
});
로그인 후 복사

ㄷ. 동적 UI 요소

<table>





<pre class="brush:php;toolbar:false">const table = document.getElementById("dataTable");

table.addEventListener("click", function(event) {
  if (event.target.tagName === "TD") {
    console.log("Clicked cell:", event.target.textContent);
  }
});
로그인 후 복사

7. 이벤트 위임 시 주의사항

  1. 전파 문제: 버블링을 방지할 수 있으므로 stopPropagation()을 사용할 때 주의하세요.
  2. 성능 오버헤드: 필요한 경우에만 위임하세요. 필요한 경우가 아니면 전체 문서에 단일 리스너를 연결하지 마세요.
  3. 이벤트 타겟팅: event.target 및 조건을 사용하여 정확한 타겟팅을 보장합니다.

8. 요약

  • 이벤트 위임은 단일 리스너를 사용하여 여러 요소에 대한 이벤트를 관리하는 효율적인 방법입니다.
  • 이벤트 버블링에 의존하며 특히 동적으로 추가된 요소를 처리하는 데 유용합니다.
  • 이벤트를 트리거한 특정 요소를 식별하려면 항상 event.target을 사용하세요.

이벤트 위임을 마스터하면 대화형 웹 애플리케이션을 위한 더욱 깔끔하고 효율적인 JavaScript 코드를 작성할 수 있습니다.

안녕하세요. 저는 Abhay Singh Kathayat입니다!
저는 프론트엔드와 백엔드 기술 모두에 대한 전문 지식을 갖춘 풀스택 개발자입니다. 저는 효율적이고 확장 가능하며 사용자 친화적인 애플리케이션을 구축하기 위해 다양한 프로그래밍 언어와 프레임워크를 사용하여 작업합니다.
제 비즈니스 이메일(kaashshorts28@gmail.com)로 언제든지 연락주세요.

위 내용은 JavaScript로 이벤트 위임 익히기: 이벤트 처리 단순화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿