English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 튜토리얼

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 튜토리얼

JavaScript 참조 매뉴얼

JavaScript 이벤트 리스너

JavaScript 이벤트 처리기의 최신 기능은 이벤트 리스닝입니다. 이벤트 리스닝은 요소에 이벤트를 감지합니다:

사용할 것입니다addEventListener()메서드를 사용하여 요소에 이벤트를 직접 할당하는 대신 추가합니다:

addEventListener() 메서드

addEventListener()메서드는 지정된 요소에 이벤트 처리기를 추가합니다:

이전 장에서 소개한 랜덤 색상 예제를 다시 작성할 수 있습니다. 예를 들어:

document.querySelector("button").addEventListener("click", bgChange);
function bgChange() {
   let color = "rgb(" + random(255) + ", + random(255) + ", + random(255) + ")";
   document.body.style.backgroundColor = color;
para.innerHTML = "Hello world";
테스트를 보세요‹/›

그래서 여전히이전에도동일한bgChange()함수를 사용하여,addEventListener()메서드를 버튼에 추가합니다:

addEventListener() 두 개의 필수 매개변수를 받습니다:-감지할 이벤트와 리스너 콜백 함수:

이 메서드는 이전 장에서 설명한 이벤트 처리기 속성과 유사하지만 문법이 다릅니다:

문법:

element.addEventListener(event, listener, useCapture)

첫 번째 매개변수는 이벤트의 유형입니다(예: "click" 또는 "mousemove").

두 번째 매개변수는 이벤트가 발생할 때 호출할 리스너 함수입니다:

세 번째 매개변수는 이벤트가 퍼블릭이 되거나 캡처될지 지정하는 부울 값입니다. 이 매개변수는 선택 사항입니다:

주의하세요. 이벤트에 "on" 프리كس를 사용하지 마세요. "click" 대신 "onclick"을 사용하세요:

요소에 이벤트 리스너를 추가하세요:

모든 코드를 넣을 때 주의하세요:addEventListener()함수 내의 익명 함수는 매우 적합합니다. 예를 들어:

let para = document.querySelector("#para");
para.addEventListener("click", function() {
this.innerHTML = "Hello world";
});
테스트를 보세요‹/›

또한 외부 "이름" 함수를 인용할 수 있습니다:

let para = document.querySelector("#para");
let para = document.querySelector("#para");
para.addEventListener("click", changeText);
   function changeText() {
para.innerHTML = "Hello world";
테스트를 보세요‹/›

}

여러 개의 이벤트 리스너를 동일한 요소에 추가

乍一看,이벤트 리스너는 이벤트 처리기 속성과 매우 유사하지만, 몇 가지 장점이 있습니다. 동일한 요소에 여러 개의 이벤트 리스너를 설정할 수 있습니다. 다음 예제를 참고하세요:
document.querySelector("button").addEventListener("click", myFunc);
테스트를 보세요‹/›

document.querySelector("button").addEventListener("click", anotherFunc);

요소에 다양한 유형의 이벤트를 추가할 수 있습니다:1document.querySelector("button").addEventListener("mouseout", myFunc
document.querySelector("button").addEventListener("mouseenter", myFunc2document.querySelector("button").addEventListener("mouseout", myFunc
document.querySelector("button").addEventListener("click", myFunc3document.querySelector("button").addEventListener("mouseout", myFunc
테스트를 보세요‹/›

);

파라미터 전달

파라미터 값을 전달할 때, 파라미터를 사용하여 지정된 함수를 호출하는 익명 함수를 사용하십시오:
var btn = document.querySelector("button");
btn.addEventListener("click", function() {
});
테스트를 보세요‹/›

myFunc(x, y);

이벤트 리스너를 추가할 수 있습니다:addEventListener()또한, 다음과 같이 이벤트 리스너를 Window 객체에 추가할 수 있습니다:문서객체에 사용됩니다。

이 예제에서는 다음과 같이 사용됩니다:addEventListener()이 메서드는 클릭 이벤트를 문서에 추가합니다:

document.addEventListener("click", function() {
alert("Hello World!!!");
});
테스트를 보세요‹/›

이 예제에서는 다음과 같이 사용됩니다:addEventListener()이 메서드는 창 크기 조정(resize) 이벤트를 창에 추가합니다:

window.addEventListener("resize", function() {
box.innerHTML = Math.random();
});
테스트를 보세요‹/›

현재, 이벤트 리스너는 JavaScript에서 이벤트를 처리하는 가장 일반적이고 선호되는 방법입니다.

removeEventListener() 메서드

또한 이를 사용할 수 있습니다.removeEventListener()요소에서 하나 이상의 이벤트를 제거하는 메서드입니다.

var box = document.getElementById("para");
// id="para"의 P 요소에 이벤트 리스너를 연결합니다.
box.addEventListener("mousemove", myFunc);
// id="para"의 P 요소에서 이벤트 리스너를 제거합니다.
box.removeEventListener("mousemove", myFunc);
테스트를 보세요‹/›

첫 번째 매개변수는 이벤트의 유형입니다(예: "click" 또는 "mousemove").

두 번째 매개변수는 이벤트가 발생할 때 호출할 함수입니다.

更多阅读

JavaScript 참조:HTML DOM 이벤트 객체 참조