자바스크립트의 이벤트 위임(그림 및 텍스트 튜토리얼)
이 글은 주로 JavaScript의 이벤트 위임에 대한 자세한 설명에 대한 내용을 소개하고 있으니 필요하신 분들은 참고하시면 됩니다
요즘 면접 질문을 보니 1000li에 클릭 이벤트를 추가해 달라는 내용이 있었을 텐데요. 추가하는 방법은? 대부분의 사람들의 첫인상은 각 리에 하나씩 추가하는 것일 수 있습니다. 이 경우 인터뷰 중에 GG가 될 것으로 추정됩니다. 이벤트 위임 메커니즘에 대해 살펴보겠습니다.
먼저 이벤트 버블링과 이벤트 캡처 메커니즘에 대해 이야기해 보겠습니다. 이벤트 버블링은 Microsoft에서 제안했고, 이벤트 캡처는 당시 Netscape에서 제안했습니다. 나중에 w3c는 타협 방법을 채택할 수밖에 없었습니다. 이벤트가 발생한 후 먼저 캡처한 다음 버블링했습니다.
일반적으로 js에서는 이벤트를 모니터링하는 세 가지 방법이 있습니다. 즉,
ele.addEventListener(type,listener,[useCapture]);//IE6~8은 지원하지 않습니다
ele.attachEvent('on'+type,listener);//IE6~10은 지원하지 않습니다, IE11 does not Support
ele.onClick=function(){};//모든 브라우저 지원
w3c 사양은 캡처 단계, 대상 단계, 버블링 단계의 세 가지 이벤트 단계를 정의하며, w3c dom2 레벨 규정에서는 addEventListener를 사용하여 이벤트를 수신합니다. 따라서 먼저 addEventListener를 사용하여 설명하겠습니다. 먼저 가짜 거품은 물에 돌을 던지면 물 속의 거품이 위로 올라오는 것과 같습니다. 상향식, 즉 트리거링을 의미합니다. 이벤트는 하위 요소의 방향에서 상위 요소로 트리거되는 반면 캡처 메커니즘은 그 반대입니다. 캡처 메커니즘은 상위 요소에서 하위 요소로 이벤트를 트리거하며 세 번째 매개변수는 다음과 같습니다. addEventListener 함수는 캡처 메커니즘을 사용할지 아니면 버블링 메커니즘인지 결정하는 데 사용됩니다. useCapture가 true이면 캡처 메커니즘입니다. useCapture가 false이면 버블링 메커니즘입니다. :
Copy code
<p class="parent"> <p class="child"> </p> </p> <script> var parent = document.getElementsByClassName('parent')[0]; var child = document.getElementsByClassName('child')[0]; parent.addEventListener('click',function(){ console.log("这里是父元素"); },false); child.addEventListener('click',function(){ console.log("这里是子元素"); },false); </script>
하위 요소를 클릭하면 위의 이미지가 표시됩니다. false를 true로 변경하면 실행 순서가 바뀌는 것을 알 수 있습니다. 버블링과 캡처는 정반대입니다.
그러면 이 바인딩 메커니즘을 사용할 때의 단점은 각 객체에 이벤트를 바인딩하는 것이 특히 번거로울 것입니다. 더 중요한 것은 JavaScript와 DOM 노드 사이에 상관관계를 추가했다는 것입니다. 게다가 순환 참조가 나타나면 메모리 누수가 발생할 가능성이 높습니다.
따라서 이를 해결하는 한 가지 방법이 있습니다. 단점은 이벤트 위임입니다. 이 방법을 사용하면 이러한 수신 이벤트를 해당 노드의 상위 요소에 바인딩하는 것을 방지할 수 있습니다. 이벤트가 트리거될 수 있도록 여기에 제공하는 예는 davidwalsh가 제공한 예입니다.
이제 상위 요소 ul과 여러 li 하위 요소가 있습니다.
<ul id="parent-list"> <li id="post-1">Item 1</li> <li id="post-2">Item 2</li> <li id="post-3">Item 3</li> <li id="post-4">Item 4</li> <li id="post-5">Item 5</li> <li id="post-6">Item 6</li> </ul>
이제 우리는 무엇을 할까요? 달성하려는 목표는 각 li 노드에 대해 클릭하면 li 노드의 내용이 출력된다는 것입니다. 위의 작성 방법에 따라 이러한 li를 선택하고 해당 메소드를 추가한 다음 해당 li 노드가 없으면 제거할 수 있습니다. 100li, 1000li가 있으면 악몽이 될 것입니다. 더 나은 해결책은 부모 요소에 청취 이벤트를 추가하는 것입니다. 이벤트에서 어떤 li가 클릭되었는지 확인하는 방법입니다. , 현재 이벤트의 대상을 판단하여 그것이 우리가 찾고 있는 노드인지 판단할 수 있습니다. 여기에 간단한 예가 있습니다:
// 找到父元素,绑定一个监听事件 document.getElementById("parent-list").addEventListener("click", function(e) { // e.target是点击的元素 // 如果它是li元素 if(e.target && e.target.nodeName == "LI") { // console.log("List item ", e.target.id.replace("post-", ""), " was clicked!"); } });
ul에서 클릭 이벤트가 발생하면 addEventListener의 기본값은 버블링 이벤트이므로 청취는 이벤트가 발생하면 이벤트가 트리거된 후 해당 요소가 찾고 있는 대상 요소인지 여부를 감지하고, 그렇지 않으면 무시할 수 있습니다. 대상 요소의 레이블은 우리에게 필요한 대상 요소입니다. 대상 요소의 속성이나 클래스 이름을 기반으로 감지하고 처리를 위해 API ele.maeches를 사용할 수도 있습니다.
document.getElementById("myp").addEventListener("click",function(e) { // e.target 就是当前被点击的元素 if (e.target && e.target.matches("a.classA")) { console.log("Anchor element clicked!"); } });
위 내용은 제가 모두를 위해 컴파일한 것입니다. . 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
Vue.jsmpvue 프레임워크 개발 단계에 대한 자세한 설명
위 내용은 자바스크립트의 이벤트 위임(그림 및 텍스트 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Dewu APP는 현재 매우 인기 있는 브랜드 쇼핑 소프트웨어이지만 대부분의 사용자는 Dewu APP의 기능을 사용하는 방법을 모릅니다. 다음으로 편집기는 Dewuduo를 사용자에게 제공합니다. 관심 있는 사용자는 와서 살펴볼 수 있습니다! Dewu 이용방법 튜토리얼 [2024-03-20] Dewu 할부구매 이용방법 [2024-03-20] Dewu 쿠폰 받는 방법 [2024-03-20] Dewu 매뉴얼 고객센터 찾는 방법 [2024-03- 20] 듀우 픽업 코드 확인 방법 [2024-03-20] 듀우 구매처 찾기 [2024-03-20] 듀우 VIP 개설 방법 [2024-03-20] 듀우 반품, 교환 신청 방법

얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

여름에 비가 내린 후에는 아름답고 마법 같은 특별한 날씨 장면인 무지개를 자주 볼 수 있습니다. 이 역시 사진에서 볼 수 있는 보기 드문 장면으로, 매우 포토제닉하다. 무지개가 나타나는 데에는 몇 가지 조건이 있습니다. 첫째, 공기 중에 충분한 물방울이 있고, 둘째, 태양이 낮은 각도로 빛납니다. 따라서 비가 그친 후 오후에 무지개를 보는 것이 가장 쉽습니다. 그러나 무지개의 형성은 날씨, 빛, 기타 조건의 영향을 크게 받기 때문에 일반적으로 짧은 시간 동안만 지속되며, 가장 잘 볼 수 있고 촬영할 수 있는 시간은 더욱 짧습니다. 그러면 무지개를 만났을 때 어떻게 제대로 기록하고 고품질로 사진을 찍을 수 있습니까? 1. 무지개를 찾아보세요. 위에서 언급한 조건 외에도 무지개는 대개 햇빛 방향으로 나타납니다. 즉, 태양이 서쪽에서 동쪽으로 빛날 경우 무지개가 동쪽에서 나타날 확률이 높습니다.

모니터 구입 시 테스트는 파손 구입을 피하기 위해 꼭 필요한 부분입니다. 오늘은 모니터 테스트를 위한 소프트웨어 사용법을 알려드리겠습니다. 방법 단계 1. 먼저 본 사이트에서 DisplayX 소프트웨어를 검색하여 다운로드한 후 설치하고 열면 사용자에게 제공되는 다양한 감지 방법을 확인할 수 있습니다. 2. 사용자는 일반 전체 테스트를 클릭합니다. 첫 번째 단계는 디스플레이의 밝기를 테스트하여 상자가 선명하게 보이도록 조정하는 것입니다. 3. 그런 다음 마우스를 클릭하여 다음 링크를 입력합니다. 모니터가 각 흑백 영역을 구분할 수 있으면 모니터가 여전히 양호하다는 의미입니다. 4. 마우스 왼쪽 버튼을 다시 클릭하면 모니터의 그레이스케일 테스트를 볼 수 있습니다. 색상 전환이 매끄러울수록 모니터가 더 좋아진 것입니다. 5. 또한, 우리는 displayx 소프트웨어에서

1. 먼저 위챗을 엽니다. 2. 오른쪽 상단의 [+]를 클릭하세요. 3. QR코드를 클릭하시면 결제가 진행됩니다. 4. 오른쪽 상단에 있는 세 개의 작은 점을 클릭하세요. 5. 결제도착 음성알림을 클릭하시면 종료됩니다.

PhotoshopCS는 Photoshop Creative Suite의 약자로 Adobe에서 제작한 소프트웨어입니다. 그래픽 디자인 및 이미지 처리에 널리 사용됩니다. PS를 처음 배우는 사용자로서 오늘은 photoshopcs5가 무엇인지, photoshopcs5를 사용하는 방법에 대해 설명하겠습니다. . 1. Photoshop CS5는 어떤 소프트웨어입니까? Adobe Photoshop CS5 Extended는 영화, 비디오 및 멀티미디어 분야의 전문가, 3D 및 애니메이션을 사용하는 그래픽 및 웹 디자이너, 엔지니어링 및 과학 분야의 전문가에게 이상적입니다. 3D 이미지를 렌더링하고 이를 2D 합성 이미지로 병합합니다. 쉽게 비디오 편집

스마트폰의 지속적인 발전과 함께 휴대폰의 기능은 점점 더 강력해졌고, 그 중 장사진 촬영 기능은 많은 사용자들이 일상생활에서 사용하는 중요한 기능 중 하나로 자리 잡았다. 긴 스크린샷은 사용자가 쉽게 보고 공유할 수 있도록 긴 웹페이지, 대화 기록, 사진을 한 번에 저장하는 데 도움이 됩니다. 많은 휴대폰 브랜드 중에서 Huawei 휴대폰은 사용자들로부터 높은 평가를 받는 브랜드 중 하나이며, 긴 사진을 자르는 기능도 높은 평가를 받고 있습니다. 이 기사에서는 Huawei 휴대폰으로 장사진을 찍는 올바른 방법과 Huawei 휴대폰을 더 잘 활용하는 데 도움이 되는 몇 가지 전문가 팁을 소개합니다.

PHP 튜토리얼: Int 유형을 문자열로 변환하는 방법 PHP에서는 정수 데이터를 문자열로 변환하는 것이 일반적인 작업입니다. 이 튜토리얼에서는 특정 코드 예제를 제공하면서 PHP의 내장 함수를 사용하여 int 유형을 문자열로 변환하는 방법을 소개합니다. 캐스트 사용: PHP에서는 캐스트를 사용하여 정수 데이터를 문자열로 변환할 수 있습니다. 이 방법은 매우 간단합니다. 정수 데이터 앞에 (문자열)을 추가하면 문자열로 변환됩니다. 아래는 간단한 샘플 코드입니다.
