2022.07.01 - [WEB/Javascript] - [JS] 브라우저 DOM
[JS] 브라우저 DOM
https://www.w3schools.com/js/js_htmldom.asp JavaScript HTML DOM W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like..
tae-05-yu.tistory.com
이전 DOM 포스팅에 사용했던 버튼 예시를 사용해보자
See the Pen Untitled by Tae (@Tae54) on CodePen.
타겟.addEventListener(타입(이벤트명),함수(리스너))
const btn = document.querySelector('.btn');
//문서 내에서 주어진 선택자를 만족하는 첫 번째 Element를 반환한다.
btn.addEventListener('click',(event) => {
alert('경고창!\n연습입니다.')
//window 객체 메소드로 html안에 없던 요소를 생성해서 알림을 보낸다.
})
타입(이벤트)에대한 예시는 이전 포스팅에 올렸으니 참고하자
이벤트('click') 발생시 처리할 함수(리스너)를 설정하는 방법은 다양한데
1. 화살표 함수를 통해 함수이름과 함께 선언
button.addEventListener('click', (onButton/함수이름) => {
console.log('이벤트 발생');
});
2. 메소드안에서 함수내용만 선언
button.addEventListener('click', function() {
console.log('이벤트 발생');
});
3.메소드 밖에서 함수 선언하고 가져오기
function onButton() {
console.log('이벤트 발생')
};
button.addEventListener('click', onButton);
이벤트 발생시 요소 혹은 정보 나타내기
btn.addEventListener('click',(func)=> {
alert('경고창!\n 연습입니다.');
document.querySelector('.log').innerHTML = func;
//함수이름으로 이벤트 정보를 출력
document.querySelector('.log2').innerHTML= func.target;
//함수이름.target 으로 이벤트 타겟 요소 출력
})
이벤트 삭제하기 : 타겟.removeEventListener(타입(이벤트명),함수(리스너))
-함수명이 필요하다. 위의 3번 방식의 함수를 가져온다,
-시간지연이 필요하다.
setTimeout( 함수 , 시간(ms))으로 몇 초가 지난 후에 함수를 실행하도록 한다.
이벤트리스너를 삭제하는 함수를 사용하여 이벤트 처리를 한번 실행하고난 후 몇 초가 지나면 이벤트를 실행할 수 없다.
function messageAlert () {
alert('경고메세지입니다.');
};
btn.addEventListener('click',messageAlert)
setTimeout(()=>{ btn.removeEventListener('click',messageAlert);
},5000);
codepen의 js내용을 모두 지우고 다시 위의 코드로 실행하면
5초뒤에 버튼을 아무리 많이 눌러도 메시지 알림창은 뜨지않는다.
'WEB > Javascript' 카테고리의 다른 글
[JS] 이벤트 처리 - Viewport 에 따른 사이즈 변경 (0) | 2022.07.04 |
---|---|
[JS] 이벤트처리 - 마우스 조작 (0) | 2022.07.04 |
[JS] Window - 안내메세지 / 확인메세지 / 입력메세지 띄우기 (0) | 2022.07.03 |
[JS] 브라우저 DOM (0) | 2022.07.01 |
[JS] 기본 배열 - 1편 (0) | 2022.06.27 |