자바스크립트 이벤트 버블링 적용 예시 분석_자바스크립트 스킬
그러나 오늘날 대규모 WebGame 프로젝트와 같은 일부 대규모 WEB 대화형 프로젝트에서는 JavaScript 이벤트 버블링의 영향에 주목할 가치가 있습니다. 이 문서에서는 간단한 예를 사용하여 JavaScript 이벤트 버블링 및 사용 주의 사항을 설명합니다.
JavaScript 이벤트 버블링에 대한 인상이 없다면 제가 이전에 작성한 블로그 "JavaScript 이벤트 버블 소개 및 적용"을 읽어 보는 것이 좋습니다. 이 기사는 실용적이며 JavaScript 이벤트 버블링에 대한 기본 지식에 대해 너무 자세히 설명하지 않습니다.
기사를 시작하기 전에 다음 요구 사항을 살펴보겠습니다. 다음 HTML은 WebGame 프로젝트 패키지 바의 외부 프레임을 설명한다고 가정합니다. (온라인 게임을 해 본 사람이라면 패키지 바 또는 패키지 바가 무엇인지 알아야 합니다.) 인벤토리 표시줄)인 경우, 패키지 제목 표시줄을 끌어서 페이지의 원하는 위치로 패키지를 끌고, 제목 표시줄 오른쪽에 있는 "×" 닫기 버튼을 클릭하여 패키지 표시줄 표시를 닫습니다. HTML 구조를 관찰하면 닫기 버튼이 실제로 A 링크이고 제목 표시줄 H5의 하위 요소로 존재한다는 것을 알 수 있습니다. 요소를 드래그하려면 드래그 핸들 요소에 mousedown 이벤트를 등록하고 닫기 버튼을 클릭하거나 "클릭"하여 패키지를 닫는 것을 생각할 수 있습니다. 이 요구 사항을 기반으로 우리는 신속하게 다음 코드를 얻었습니다.
[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
In 위의 예에서는 닫기 버튼을 클릭하면 제목 표시줄의 mousedown 이벤트도 트리거된다는 것을 알 수 있습니다. 이는 작업 중인 JavaScript 이벤트 버블링이라는 것을 알고 있기 때문에 분명히 예상한 것입니다. 실제로 꼭 원하는 효과는 닫기 버튼을 눌렀을 때 제목 H5에 등록된 mousedown 이벤트가 실행되지 않도록 하는 것이므로 해당 이벤트가 버블링되는 것을 방지하려고 생각한 후 코드를 다음과 같이 수정했습니다. 코드는 다음과 같습니다.
그 결과 닫기 버튼을 눌렀을 때 제목 H5에 등록된 mousedown 이벤트가 계속 실행되는 것을 확인했습니다. 무슨 일이 일어나고 있는 걸까요? 실제로 주의 깊게 살펴보면 H5 제목과 A 링크에 등록된 이벤트가 동일하지 않다는 것을 알 수 있습니다. 위 코드에서는 A 링크에 등록된 클릭 이벤트에서 차단 이벤트 메서드를 호출합니다. 단지 "부모 요소에 의해 등록된 유사한 이벤트" 이벤트가 실행되지 않는다는 의미입니다. 즉, H5 타이틀에도 클릭 이벤트가 등록되어 있으면 클릭 이벤트가 실행되지 않고 여기에서 마우스다운이 계속 실행된다는 의미입니다. . 여기에서 mousedown 실행은 제목 표시줄을 클릭했기 때문에 발생하는 것이 아니라 클릭할 때 mousedown 이벤트가 생성되기 때문에 발생합니다. 그런 다음 JavaScript 이벤트 버블링 메커니즘이 존재하기 때문에 해당 이벤트가 부모에게 브로드캐스트되고 의해 mousedown됩니다. H5 제목을 등록합니다. 이 점에 대한 이해를 위해 제 다른 블로그 "onmousedown, onmouseup, onclick이 동일한 라벨 노드 요소에 동시에 적용되는 경우"를 참고하시면 됩니다. 이제 분석을 통해 위 코드를 약간 변경하면 됩니다. A 링크의 클릭 이벤트를 H5 제목과 동일한 mousedown 이벤트로 변경하면 원하는 효과를 얻을 수 있습니다.
관련 주제:
이제 jQuery로 개발할 때 이벤트 버블링을 쉽게 방지하는 방법에 대해 이야기하겠습니다. 뛰어난 스크립팅 프레임워크인 jQuery는 이벤트 캡슐화 및 브라우저 호환성 측면에서 당연히 탁월합니다. 더 자세히 알고 싶다면 내 다른 블로그인 "JQuery의 $.event.fix 기능을 사용하여 브라우저 이벤트 처리 통합"을 읽어보세요.
jQuery를 사용하여 이벤트 버블링을 방지하는 방법은 두 가지가 있습니다.
1. jQuery를 사용하여 호환되는 이벤트 객체를 만들고 직접 event.preventDefault()를 사용합니다.
×
×
🎜>마지막 참고 사항 이제 두 번째 방법을 사용하여 이벤트 버블링을 방지하고 브라우저의 기본 동작도 방지합니다. jQuery 이벤트 처리 소스 코드의 핸들 메서드(jQuery JavaScript Library v1.3.2 비압축 코드 라인) 2700) 다음 처리에서는 브라우저의 기본 동작을 방지하기 위해 event.preventDefault()가 사용되는 것을 볼 수 있습니다.
코드 복사
event.preventDefault()
event.stopPropagation(); }
//다른 코드......
}
작성자: WebFlash

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이벤트 버블링 이해: 하위 요소를 클릭하면 상위 요소에서 이벤트가 트리거되는 이유는 무엇입니까? 이벤트 버블링은 중첩된 요소 구조에서 하위 요소가 이벤트를 트리거할 때 이벤트가 가장 바깥쪽 상위 요소까지 버블링처럼 레이어별로 상위 요소에 전달된다는 것을 의미합니다. 이 메커니즘을 사용하면 하위 요소의 이벤트가 요소 트리 전체에 전파되고 모든 관련 요소가 차례로 트리거될 수 있습니다. 이벤트 버블링을 더 잘 이해하기 위해 구체적인 예제 코드를 살펴보겠습니다. HTML 코드: <divid="부모&q

이벤트 버블링이 두 번 트리거되는 이유는 무엇입니까? 이벤트 버블링(이벤트 버블링)은 DOM에서 요소가 이벤트(예: 클릭 이벤트)를 트리거할 때 이벤트가 최상위 문서 객체에 버블링될 때까지 요소에서 상위 요소로 버블링되는 것을 의미합니다. 이벤트 버블링은 DOM 이벤트 모델의 일부입니다. 이를 통해 개발자는 이벤트 리스너를 상위 요소에 바인딩할 수 있으므로 하위 요소가 이벤트를 트리거할 때 이벤트가 버블링 메커니즘을 통해 캡처되고 처리될 수 있습니다. 그러나 때때로 개발자는 버블링되어 두 번 트리거되는 이벤트를 접하게 됩니다.

제목: jQuery.val() 실패 이유와 해결 방법 프론트 엔드 개발에서 jQuery는 DOM 요소를 조작하는 데 자주 사용됩니다. .val() 메소드는 양식 요소의 값을 얻고 설정하는 데 널리 사용됩니다. 그러나 때때로 .val() 메소드가 실패하여 양식 요소의 값을 올바르게 얻거나 설정할 수 없는 상황이 발생합니다. 이 기사에서는 .val() 실패의 원인을 살펴보고 해당 솔루션을 제공하며 특정 코드 예제를 첨부합니다. 1.원인분석.val() 메소드

JavaScript의 클릭 이벤트는 이벤트 버블링 메커니즘으로 인해 반복적으로 실행될 수 없습니다. 이 문제를 해결하려면 다음 조치를 취할 수 있습니다. 이벤트 캡처 사용: 이벤트가 발생하기 전에 실행할 이벤트 리스너를 지정합니다. 이벤트 전달: 이벤트 버블링을 중지하려면 event.stopPropagation()을 사용하세요. 타이머 사용: 일정 시간 후에 이벤트 리스너를 다시 트리거합니다.

Vue.js 이벤트 수정자는 다음을 포함한 특정 동작을 추가하는 데 사용됩니다. 기본 동작 방지(.prevent) 이벤트 버블링 중지(.stop) 일회성 이벤트(.once) 이벤트 캡처(.capture) 수동 이벤트 수신(.passive) 적응형 수정자(.self)키 수정자(.key)

이벤트 버블링이 두 번 연속으로 발생하는 이유는 무엇입니까? 이벤트 버블링은 웹 개발에서 중요한 개념입니다. 이는 중첩된 HTML 요소에서 이벤트가 트리거될 때 이벤트가 가장 안쪽 요소에서 가장 바깥쪽 요소로 버블링된다는 것을 의미합니다. 이 프로세스는 때때로 혼란을 야기할 수 있습니다. 한 가지 일반적인 문제는 이벤트 버블링이 연속으로 두 번 발생한다는 것입니다. 이벤트 버블링이 두 번 연속으로 발생하는 이유를 더 잘 이해하기 위해 먼저 코드 예제를 살펴보겠습니다.

JS 이벤트에서 버블링이 발생하지 않는 상황은 무엇입니까? 이벤트 버블링(Event Bubbling)은 요소의 이벤트가 발생한 후 가장 안쪽 요소부터 시작하여 가장 바깥쪽 요소까지 DOM 트리를 따라 위쪽으로 이벤트가 전송되는 것을 의미합니다. 그러나 모든 이벤트가 버블링될 수 있는 것은 아닙니다. 이벤트가 버블링되지 않는 몇 가지 특별한 경우가 있습니다. 이 기사에서는 이벤트가 버블링되지 않는 JavaScript의 상황을 소개합니다. 1. stopPropagati를 사용하세요

이벤트 버블링이란 무엇입니까? 이벤트 버블링 메커니즘에 대한 심층 분석 이벤트 버블링은 이벤트가 페이지에 전달되는 방식을 정의하는 웹 개발에서 중요한 개념입니다. 요소에 대한 이벤트가 트리거되면 이벤트는 가장 안쪽 요소부터 시작하여 가장 바깥쪽 요소로 전달될 때까지 바깥쪽으로 전달됩니다. 이러한 전달 방식은 물 속에서 버블이 발생하는 것과 같다고 하여 이벤트 버블링이라고 합니다. 이번 글에서는 이벤트 버블링 메커니즘을 심층적으로 분석해보겠습니다. 이벤트 버블링의 원리는 간단한 예를 통해 이해할 수 있습니다. H가 있다고 가정하자
