> 웹 프론트엔드 > JS 튜토리얼 > 중첩된 DOM 객체에서 하위 이벤트가 트리거될 때 상위 이벤트 핸들러가 실행되는 것을 방지하는 방법은 무엇입니까?

중첩된 DOM 객체에서 하위 이벤트가 트리거될 때 상위 이벤트 핸들러가 실행되는 것을 방지하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-24 08:45:11
원래의
294명이 탐색했습니다.

How to Prevent Parent Event Handlers from Executing When a Child Event is Triggered in Nested DOM Objects?

중첩 DOM 객체에서 이벤트 진행 유지

이벤트 핸들러가 여러 수준에서 정의되는 중첩 DOM 구조에서는 하위 이벤트가 트리거될 때 상위 이벤트 핸들러의 실행. 다음 예를 고려해보세요.

<div><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><div>
로그인 후 복사


이 구조에서 클릭이 모든 div 요소에서 "func" 함수를 호출합니다. 그러나 문제가 있습니다. "b" 또는 "c"를 클릭하면 클릭한 div와 해당 상위 div인 "a" 모두에 대해 "func" 기능이 트리거됩니다.

해결책: 이벤트 전파 제어

jQuery는 이벤트가 DOM 트리 위로 전파되는 것을 방지하는 방법을 제공합니다. 이벤트 핸들러를 정의하기 전에 다음 코드를 추가하면

$('#a').add('#b').click(function(event) {
    event.stopPropagation();
});
로그인 후 복사

"b" 또는 "c"를 클릭해도 이벤트가 상위 "a"로 전파되는 것을 방지할 수 있습니다. 이렇게 하면 클릭한 하위 div의 함수만 실행됩니다.

이벤트 전파를 제어하면 중첩된 DOM 구조에서 원하는 이벤트 흐름을 유지하고 의도하지 않은 함수 실행을 방지할 수 있습니다.

위 내용은 중첩된 DOM 객체에서 하위 이벤트가 트리거될 때 상위 이벤트 핸들러가 실행되는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
이전 기사:defer 속성을 사용하여 외부 라이브러리 최적화: 페이지 속도 향상 다음 기사:jQuery 또는 JavaScript를 사용하여 스크롤 막대를 방지하기 위해 Iframe 높이를 동적으로 조정하려면 어떻게 해야 합니까?
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
관련 주제
더>
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿