-
웹브라우저 자바스크립트 - addEventListener()JavaScript/생활코딩 2018. 11. 30. 13:59
addEventListener() - https://opentutorials.org/course/1375/6761
<input type="button" id="target" value="button" />
<script>
var t = document.getElementById('target');
t.addEventListener('click', function(event){ //addEventListener의 첫번째인자는 이벤트 타입을 받는다. click이 발생하였을 때 두번째 인자인 함수를 실행한다.
alert('Hello world, '+event.target.value);
});
</script>
ie8이하버전은 attachEvent 메소드를 사용해야 한다. 아래 예제는 ie8이하에서도 사용가능한 코드이다.
var t = document.getElementById('target');
if(t.addEventListener){ //if문을 통해서 addEventListener가 사용가능한 브라우저에서는 이 코드가 사용된다.
t.addEventListener('click', function(event){
alert('Hello world, '+event.target.value);
});
} else if(t.attachEvent){ //addEventListener가 사용불가능한 ie8이하 브라우저에서 이 코드가 사용한다.
t.attachEvent('onclick', function(event){ //click이 아닌 onclick으로 작성해주며 나머지 부분은 동일하다.
alert('Hello world, '+event.target.value);
})
}
※ addEventListener의 장점은 동일한 이벤트들을 계속 등록이 가능하다. 이 부분은 inline, 프로퍼티 방식과 다른 점이다.
<input type="button" id="target1" value="button1" />
<input type="button" id="target2" value="button2" />
<script>
var t1 = document.getElementById('target1'); //t1변수에 첫번째 버튼엘리먼트를 담는다.
var t2 = document.getElementById('target2'); //t2변수에 두번째 버튼엘리먼트를 담는다.
function btn_listener(event){ //btn_listener은 addEventListener로 사용할 함수
switch(event.target.id){ //event.target.id를 통해서 html에 있는 id값을 가져올 수 있다.
case 'target1':
alert(1);
break;
case 'target2':
alert(2);
break;
}
}
t1.addEventListener('click', btn_listener); //클릭을 하면 btn_listener이 실행된다. addEventListner을 계속 사용할 수 있다는 것을 확인 할 수 있다.
t2.addEventListener('click', btn_listener); //클릭을 하면 btn_listener이 실행된다. addEventListner을 계속 사용할 수 있다는 것을 확인 할 수 있다.
</script>
'JavaScript > 생활코딩' 카테고리의 다른 글
웹브라우저 자바스크립트 - 이벤트 타입, 폼 (0) 2018.11.30 웹브라우저 자바스크립트 - 기본동작의 취소 (0) 2018.11.30 웹브라우저 자바스크립트 - 프로퍼티 리스너 (0) 2018.11.29 웹브라우저 자바스크립트 - inline (0) 2018.11.29 웹브라우저 자바스크립트 - 이벤트 (0) 2018.11.29 댓글