찾다
웹 프론트엔드JS 튜토리얼DOM 이벤트 흐름에 대한 자세한 설명_기본지식

1. 버블링 이벤트

브라우저 이벤트 모델은 캡처 이벤트와 버블링 이벤트의 두 가지 유형으로 나뉩니다. IE에서는 이벤트 캡처를 지원하지 않으므로 다음에서는 주로 버블링 이벤트를 설명으로 사용합니다.
(더빙 버블링) 버블링은 가장 구체적인 이벤트부터 가장 덜 구체적인 이벤트까지 이벤트가 하나씩 발생하는 것을 의미합니다.

코드 복사 코드는 다음과 같습니다.


           

                ')">나를 클릭하세요
> 본문>



위의 세 가지 함수는 모두 onclick 함수를 추가합니다. 세 가지 함수는 모두 p 요소가 먼저 실행되고 그 다음 div, 마지막으로 body가 실행됩니다.

그런데, 버블링 이벤트와 순서가 정확히 반대인 이벤트 캡처에 대한 알림입니다.

2. 이벤트 모니터링

이벤트에는 응답하는 함수가 필요합니다. 이러한 유형의 함수를 일반적으로 이벤트 핸들러라고 합니다. 다른 관점에서 이러한 함수는 이벤트 수신 함수(enevt 리스너)라고 합니다. 이벤트 청취 기능은 브라우저마다 크게 다릅니다.

i. onclick 방법과 같은 보편적인 청취 방법은 거의 모든 태그가 이 방법을 지원합니다. 그리고 브라우저 호환성도 매우 높습니다

행동, 사건 분리에 대한 설명.
일반적으로 모니터링에는 다음과 같은 방법이 사용됩니다

코드 복사 코드는 다음과 같습니다.

클릭


본문>

위에 소개된 두 가지 방법은 매우 편리하며, 몇 가지 작은 기능을 만들고 처리할 때 Everbright 개발자들에게 사랑을 받고 있습니다. 그러나 동일한 이벤트에 대한 것입니다. p 마크의 onclick 기능과 같은 기능은 하나만 추가할 수 있습니다. 따라서 IE는 동시에 다른 방법도 제공합니다.

ii.IE에서 듣는 방법

초기 IE 브라우저에서는 각 요소에 시간 모니터링을 처리하는 두 가지 방법이 있습니다.
이들은 각각 attachmentEvent() 및 detachEnevt()입니다.
함수명에서 알 수 있듯이,attachEnevt()는 요소에 이벤트 처리를 추가하는 데 사용되는 함수이고, detachEvent()는 요소의 청취 함수를 삭제하는 데 사용되는 함수입니다. 구문은 다음과 같습니다.

[개체].attachEvent("enevt_handler","fnHandler");

[개체].detachEvent("enevt_handler","fnHandler");
그 중 enevt_handler는 일반적으로 사용되는 onclick, onload, onmouseover 등을 나타냅니다.
fnHandler는 청취 함수의 이름입니다.
앞선 이벤트에서는 리스닝 함수를 추가하는 대신에attachEvent() 메소드를 이용하면 한번 클릭했을 때 다음 클릭 이후에는 리스닝 함수가 실행되지 않도록 detachEvent()를 사용하여 삭제할 수 있습니다. .

코드 복사 코드는 다음과 같습니다.

코드 복사

Alert("fnClick1이 클릭했습니다.");
}
함수 fnClick2(){
Alert("fnClick2에 의해 클릭되었습니다.");
//oP.detachEvent("onclick",fnClick1); //리스닝 함수 1 삭제
}
var oP;
window.onload = 함수(){
oP = document.getElementById("myP"); //객체 발견
oP.attachEvent("onclick",fnClick1); //리스닝 함수 추가 1
oP.attachEvent("onclick",fnClick2); //리스닝 함수 추가 2
}

머리>



~ ~



3. 표준 DOM 이벤트 모니터링

즉, 두 가지 방법에 비해 표준 DOM도 청취 기능을 추가하고 삭제하는 데 각각 두 가지 방법을 사용합니다. 그것은 addEventListener()와 RemoveEventListener()

입니다. 즉, 이 두 함수는 3개의 매개변수, 즉 이벤트 이름, 할당할 함수 이름, 버블링 단계 또는 캡처 단계에서 사용되는지 여부를 허용합니다. 캡처 단계의 매개변수는 true이고, 버블링 단계의 매개변수는 false입니다.

코드 복사

코드는 다음과 같습니다. [개체].addEventListener("event_name",fnHandler,bCapture); [개체].removeEventListener("event_name",fnHandler,bCapture);

이 두 함수의 사용법은 기본적으로 Ie의 그것과 유사하지만, event_name의 이름은 Ie의 "onclick", "onmouseover" 대신 "click", "mouseover" 등이라는 점에 유의하세요.

그리고 세 번째 매개변수인 bCapture는 보통 false로 설정되어 버블링 단계입니다.
표준 DOM 이벤트 수신 방법:

코드 복사

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Vue3获取DOM节点的方式有哪些Vue3获取DOM节点的方式有哪些May 11, 2023 pm 04:55 PM

1.原生js获取DOM节点:document.querySelector(选择器)document.getElementById(id选择器)document.getElementsByClassName(class选择器)....2.vue2中获取当前组件的实例对象:因为每个vue的组件实例上,都包含一个$refs对象,里面存储着对应的DOM元素或组件的引用。所以在默认情况下,组件的$refs指向一个空对象。可以先在组件上加上ref="名字",然后通过this.$refs.

PHP中的DOM操作指南PHP中的DOM操作指南May 21, 2023 pm 04:01 PM

在网页开发中,DOM(DocumentObjectModel)是一个非常重要的概念。它可以让开发者轻松地对一个网页的HTML或XML文档进行修改和操作,比如添加、删除、修改元素等。而PHP中内置的DOM操作库也为开发者提供了丰富的功能,本文将介绍PHP中的DOM操作指南,希望可以帮助到大家。DOM的基本概念DOM是一个跨平台、独立于语言的API,它可以将

vue dom是什么意思啊vue dom是什么意思啊Dec 20, 2022 pm 08:41 PM

dom是一种文档对象模型,同时也是用于html编程的接口,通过dom来操作页面中的元素。DOM是HTML文档的内存中对象表示,它提供了使用JavaScript与网页交互的方式。DOM是节点的层次结构(或树),其中document节点作为根。

vue3中ref绑定dom或组件失败的原因是什么及怎么解决vue3中ref绑定dom或组件失败的原因是什么及怎么解决May 12, 2023 pm 01:28 PM

vue3ref绑定dom或者组件失败原因分析场景描述在vue3中经常用到使用ref绑定组件或者dom元素的情况,很多时候,明明使用ref绑定了相关组件,但是经常ref绑定失败的情况。ref绑定失败情况举例ref绑定失败的绝大多数情况是,在ref和组件绑定的时候,该组件还未渲染,所以绑定失败。或者组件刚开始未渲染,ref未绑定,当组件开始渲染,ref也开始绑定,但是ref和组件并未绑定完成,这个时候使用组件相关的方法就会出现问题。ref绑定的组件使用了v-if,或者他的父组件使用了v-if导致页面

dom和bom对象有哪些dom和bom对象有哪些Nov 13, 2023 am 10:52 AM

dom和bom对象有:1、“document”、“element”、“Node”、“Event”和“Window”等5种DOM对象;2、“window”、“navigator”、“location”、“history”和“screen”等5种BOM对象。

bom和dom有什么区别bom和dom有什么区别Nov 13, 2023 pm 03:23 PM

bom和dom在作用和功能、与JavaScript的关系、相互依赖性、不同浏览器的兼容性和安全性考虑等方面都有区别。详细介绍:1、作用和功能,BOM的主要作用是操作浏览器窗口,它提供了浏览器窗口的直接访问和控制,而DOM的主要作用则是将网页文档转换为一个对象树,允许开发者通过这个对象树来获取和修改网页的元素和内容;2、与JavaScript的关系等等。

JavaScript DOM 常用事件最新总结!JavaScript DOM 常用事件最新总结!Aug 07, 2022 am 11:05 AM

本文给大家总结了JS DOM的常用事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

dom内置对象有哪些dom内置对象有哪些Dec 19, 2023 pm 03:45 PM

dom内置对象有:1、document;2、window;3、navigator;4、location;5、history;6、screen;7、document.documentElement;8、document.body;9、document.head;10、document.title;11、document.cookie。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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