js의 addEventListener() 및 RemoveEventListener() 분석
이 글에서는 이벤트 핸들러를 지정하고 삭제하는 작업을 처리하는 addEventListener()와 RemoveEventListener()를 주로 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
addEventListener () 및 RemoveEventListener()는 이벤트 핸들러 작업 지정 및 제거를 처리하는 데 사용됩니다.
모든 DOM 노드에는 이 두 가지 메소드가 포함되어 있으며 둘 다 3개의 매개변수(처리할 이벤트 이름, 이벤트 핸들러 기능, 부울 값)를 허용합니다.
마지막 부울 매개변수는 true입니다. 이는 이벤트 핸들러가 캡처 단계에서 호출된다는 의미입니다.
false(false-기본값)인 경우 이벤트 핸들러가 캡처 단계에서 호출된다는 의미입니다. 버블링 단계.
addEventListener에는 총 3개의 매개변수가 있습니다. 구문은 다음과 같습니다.
element.addEventListener(type, listening, useCapture)
다음은 자세한 내용입니다. 설명:
1. 요소는 함수가 바인딩되는 개체입니다.
2. 유형은 이벤트 이름입니다. "onclick"은 "click"으로 변경되어야 하며 "onblur"는 "blur"로 변경되어야 합니다. 즉, 이벤트 이름에 "on"이 포함되어서는 안 됩니다. .
3. 리스너는 물론 바인딩된 함수입니다. 괄호를 따르지 마세요.
4. 마지막 매개변수는 이벤트의 응답 순서를 나타내는 부울 값입니다( 캡쳐를 사용하세요).
버튼 클릭 이벤트에 대한 이벤트 핸들러를 추가하려면 다음 코드를 사용할 수 있습니다.
var btn = document.getElementById("myBtn"); btn.addEventListener("click", function () { alert(this.id); }, false);
DOM2 레벨 접근 방식을 사용하여 이벤트 핸들러를 추가할 때의 주요 이점 가능합니다. 여러 이벤트 핸들러를 추가합니다. 다음 예를 보십시오.
var btn = document.getElementById("myBtn"); btn.addEventListener("click", function () { alert(this.id); }, false); btn.addEventListener("click", function () { alert("Hello World"); }, false);
addEventListener()를 통해 추가된 이벤트 핸들러는 제거 시
을 통해서만 제거할 수 있습니다. 핸들러를 추가할 때 사용한 것과 동일합니다.
이는 다음 예와 같이 addEventListener()를 통해 추가된 익명 함수는 제거할 수 없음을 의미합니다.
var btn = document.getElementById("myBtn"); btn.addEventListener("click", function () { alert(this.id); }, false); btn.removeEventListener("click", function () { //无效! alert(this.id); }, false);
예제에서는 addEventListener()를 사용하여 이벤트 핸들러를 추가했습니다.
removeEventListener를 호출하면 동일한 매개변수를 사용하는 것처럼 보이지만
사실 두 번째 매개변수는 addEventListener()에 전달된 매개변수와 전혀 다른 함수입니다.
removeEventListener()에 전달된 이벤트 핸들러 함수는 addEventListener()에 전달된 이벤트 핸들러 함수와 동일해야 합니다.
다음 예와 같이:
var btn = document.getElementById("myBtn"); var handler = function () { alert(this.id); }; btn.addEventListener("click", handler, false); btn.removeEventListener("click", handler, false); //有效!
addEventListener()와 RemoveEventListener()에 동일한 함수가 사용되므로 다시 작성된 이 예제에는 문제가 없습니다.
실험 결과 사용자가 버튼을 클릭할 때마다 "I have been clicked!"라는 메시지가 출력되어 RemoveEventListener() 함수가 작동하지 않음을 나타냅니다.
정보를 검색하여 결론을 도출합니다. RemoveEventListener() 함수를 사용할 때 핸들러 함수는 addEventListener()의 핸들러 함수와 동일해야 합니다.
그래서 위에 작성한 코드는 잘못된 것입니다. 수정된 코드는 다음과 같아야 합니다.
//addEventListener()和removeEventListener()中handler函数必须相同,移除事件函数才有效。 function myhandler(){ console.log("I have been clicked!"); document.getElementById('info').removeEventListener('click',myhandler,false); } var target=document.getElementById('info'); target.addEventListener("click", myhandler, false); target.removeEventListener("click", myhandler, false); //有效!
js를 배워야 하는 학생은 php 중국어 웹사이트 js 비디오 자습서를 주목하세요. 많은 js 온라인 비디오 튜토리얼은 무료입니다. 시청하세요!
위 내용은 js의 addEventListener() 및 RemoveEventListener() 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.
