프런트엔드 면접(3) - DOM 이벤트 클래스
1. DOM 이벤트 수준
element.onclick=function(){}
element.addEventListener('click',function(){},false)
(true는 포획단계에서 촉발하고false는 거품단계에서 촉발하며 기본은false)이다.element.addEventListener('keyup',function(){},false)
(true는 포획단계에서 촉발하고false는 거품단계에서 촉발하며 기본적으로false)는 많은 사건 유형을 증가시켰다.2. DOM 이벤트 모델
3. DOM 이벤트 흐름: 브라우저가 현재 페이지와 사용자를 상호작용하는 과정에서 발생하는 과정으로 완전한 이벤트 흐름은 세 단계로 나뉜다.
이벤트는 포획을 통해 목표 요소에 도달하는데 이때가 목표 단계이고 세 번째 단계는 목표 요소에서 윈도우 대상에 업로드하는 것이다.
4. DOM 이벤트 캡처의 구체적인 절차 설명
window-->document-->html(js로 html 노드를 표시하는 방법:document.documentElement;)-->body-->·--> 목표 요소
var ev = document.getElementById("ev");
ev.addEventListener('click', function() {
console.log("ev capture");
}, true);
window.addEventListener('click', function() {
console.log("window capture");
}, true);
document.addEventListener('click', function() {
console.log("document capture");
}, true);
document.documentElement.addEventListener('click', function() {
console.log("html capture");
}, true);
document.body.addEventListener('click', function() {
console.log("body capture");
}, true);
//
// window capture
// document capture
// html capture
// body capture
// ev capture
5. 이벤트 대상의 흔한 응용
event.preventDeault()
: 기본 동작을 막습니다.event.stopPropation()
: 사건의 거품을 막는다.event.stopImmeidiatePropagation()
: 다른 이벤트를 막는다(한 버튼이 두 개 이상의 이벤트를 연결한다면: 이벤트 a, 이벤트 b,....현재 장면이 버튼을 누르려고 할 때 이벤트 a만 실행하고 다른 이벤트는 실행하지 않으면 이벤트 a의 함수에 event.stopImmeidiatePropagation()
를 추가하면 실현할 수 있다.event.currentTarget
: 현재 귀속된 이벤트;event.target
: 현재 클릭된 요소(초기 i버전은 지원되지 않으며 초기 i용event.srcElement
;6. 사용자 정의 이벤트(아날로그 이벤트)
// eve
var eve = new Event("custome");
// ev DOM
ev.addEventListener("custome",function(){
console.log("custome");
},false);
// ,
ev.dispatchEvent(eve);
// 5
setTimeout(function() {
ev.dispatchEvent(eve);
}, 5000);
CustomeEvent
(이벤트 이름을 지정하는 것 외에 이벤트에 Object를 추가하여 사용자 정의 매개 변수를 전달할 수 있음).이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.