목차
- addEventListener() 예제 - 클릭 이벤트 걸기
- addEventListener() 정의
- addEventListener() 구문
- addEventListener() 예제 - 이벤트 1개 부착
- addEventListener() 예제 - 이벤트 다수 부착
- addEventListener() 예제 - window 객체에 이벤트 부착
- addEventListener() 예제 - 실행함수에 매개변수 전달
addEventListener() 예제 - 클릭 이벤트 걸기
<button id="homzzang">클릭</button>
<p id="demo"></p>
<script>
document.getElementById("homzzang").addEventListener("click", clickDate);
function clickDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>
결과보기
※ id='homzzang' 요소 클릭 시, clickDate() 함수 실행.
addEventListener() 정의
지정요소에 이벤트 핸들러 부착.
1.
기존 이벤트는 그대로 둔 상태에서, 요소에 새 이벤트 부착.
2.
하나의 요소에 많은 이벤트 핸들러 부착 가능.
3.
하나의 요소에 동일 이벤트 여러 개 부착 가능.
4.
HTML 요소뿐만 아니라 window 객체 등 모든 DOM 객체에 부착 가능.
5.
이벤트 버블링 (= 전이 = 확산)을 보다 쉽게 제어 가능.
6.
가독성을 높이기 위해 HTML 태그와 분리되어 있으며, HTML 태그 제어 안 해도 추가 가능.
7.
removeEventListener() 메서드 사용해 쉽게 제거 가능.
8.
jQuery 경우, on() 메서드 이용.
addEventListener() 구문
element.addEventListener(event, function, useCapture);
[매개변수]
event
필수. 이벤트 (예) click, mousedown
주의: 이벤트명 적을 때 on 접두어 안 붙임.
function
필수. 이벤트 발생 시 호출 (= 실행)할 함수
주의: 함수명만 적을 땐, () 없이 함수명만 적음. (2번째 예제 참고)
useCapture
선택. 이벤트 확산 여부 참거짓. (1: 확산방지, 0: 확산허락)
addEventListener() 예제 - 이벤트 1개 부착
[방법1] - 익명함수 이용
<button id="hz">클릭</button>
<script>
document.getElementById("hz").addEventListener("click", function() {
document.write("홈짱닷컴 Homzzang.com");
});
</script>
결과보기
[방법2] - 함수명 이용 (일반적)
<button id="hz">클릭</button>
<script>
document.getElementById("hz").addEventListener("click", site);
function site() {
document.write("홈짱닷컴 Homzzang.com");
}
</script>
결과보기
addEventListener() 예제 - 이벤트 다수 부착
1. 같은 이벤트 여러개 부착
<button id="hz">클릭</button>
<h1 id="h1"></h1>
<script>
var x = document.getElementById("hz");
var h1 = document.getElementById("h1");
x.addEventListener("click", name);
x.addEventListener("click", host);
function name() {
h1.innerHTML ="홈짱닷컴";
}
function host() {
h1.innerHTML +="<br>Homzzang.com";
}
</script>
결과보기
2. 다른 이벤트 여러개 부착
<button id="hz">클릭</button>
<p id="p1"></p>
<script>
var x = document.getElementById("hz");
var p1 = document.getElementById("p1");
x.addEventListener("mouseover", e_over);
x.addEventListener("click", e_click);
x.addEventListener("mouseout", e_out);
function e_over() {
p1.innerHTML += "홈짱닷컴<br>";
}
function e_click() {
p1.innerHTML += "Homzzang.com<br>";
}
function e_out() {
p1.innerHTML += "홈페이지 제작관리<br>";
}
</script>
결과보기
addEventListener() 예제 - window 객체에 이벤트 부착
addEventListener() 메서드 사용하면 어떤 HTML DOM 객체에든 이벤트리스너 부착 가능.
(예)
HTML 요소, HTML 문서, windown 객체, 이벤트를 지원하는 기타 객체 (예: xmlHttpReques 객체)
[예제]
<p id="demo"></p>
<script>
var x = "홈짱닷컴 Homzzang.com <br>"
window.addEventListener("resize", hz); // 창 크기 조절 시 hz 함수 실행
function hz(){
document.getElementById("demo").innerHTML = x + Math.random();
}
</script>
결과보기
addEventListener() 예제 - 실행함수에 매개변수 전달
익명함수 이용.
<button id="hz">클릭</button>
<p id="demo"></p>
<script>
var my = "홈짱닷컴 Homzzang.com<br>"
var p1 = 3;
var p2 = 4;
document.getElementById("hz").addEventListener("click", function() {
calc(p1, p2);
});
function calc(a, b) {
var result = a * b;
document.getElementById("demo").innerHTML = my +result;
}
</script>
결과보기