JavaScript/JavaScript_ex
event
ldh1123
2023. 5. 8. 21:28
목차
인라인 이벤트
이벤트를 이벤트 대상의 태그 속성으로 지정
<button type="button" onclick="alert('온클릭');">버튼</button>
프로퍼티 리스너
객체의 프로퍼티로 이벤트를 등록하는 방식
// 버튼을 클릭하면 구글로 이동
const BTN1 = document.getElementById( 'btn1' );
BTN1.onclick = function() {
location.href = "https://google.co.kr";
}
addEventListener()
여러개의 이벤트 핸들러를 등록 가능
const btn2 = document.querySelector( "#btn2" );
// 현재 창에서 열기
btn2.addEventListener( "click", () => {
location.href = "https://www.daum.net"
});
// 화살표 함수는 한줄일경우 중괄호 생략 가능
btn2.addEventListener( "click", () => location.href = "https://www.daum.net" );
btn2.addEventListener( "click", function() {
location.href = "https://www.daum.net"
});
// 팝업 창 열기
btn2.addEventListener( "click", () => {
// 주소, name, 열릴 크기
open( "https://www.daum.net", "", "width = 500px height = 500px" );
});
removeEventListener()
removeEventListner( 삭제할 이벤트 타입, 삭제할 이벤트 콜백 함수 );
const btn3 = document.querySelector( "#btn3" );
let newWindow = null;
btn2.addEventListener( "click", () => {
// newWindow에 열린 창을 담아줌
newWindow = open( "https://www.daum.net", "", "width = 500px height = 500px" );
});
// 이벤트 삭제
// removeEventListner( eventType, function )
// addEventListener()로 등록된 이벤트의 인수와 같은 인수를 세팅해야 삭제됨
// 익명함수는 인식하지못함
btn3.removeEventListener( "click", () => {
newWindow.close();
});
btn3.addEventListener( "click", () => popUpClose( newWindow ) ); // btn3에 창이 닫히는 event 추가
btn3.removeEventListener( "click", () => popUpClose( newWindow ) ); // btn3에 창이 닫히는 event 를 삭제
function popUpClose( win ) {
win.close();
}
이벤트 타입
마우스 이벤트
// - mousedown - 마우스가 요소안에서 클릭이 눌릴 때
const div1 = document.querySelector('.div1');
div1.addEventListener('mousedown', () => alert('dvi1 클릭'));
// - mouseup - 마우스가 요소안에서 클릭이 해제될 때
// - mouseenter - 마우스 포인터가 요소 안으로 진입 했을 때
div1.addEventListener('mouseenter', () => alert('dvi1 진입'));
// - mouseleave - 마우스 포인터가 요소 바깥으로 나갔을 때
// - mousemove - 마우스 포인터가 요소 안에서 움직일 때
// - event.clientX, event.clientY - 브라우저 화면 기준 X, Y 좌표
// - event.pageX, event.pageY - 전체화면 기준(스크롤 포함) X, Y좌표
// - event.target.getBoundingClientRect() - 요소의 크기와 뷰포트로 부터 상대적인 위치를 반환
키보드 이벤트
// - keydown : 키가 눌릴 때
// - keypress : 입력 할 수 있는 키가 눌렸을때 ex) 한글, 영어, 방향키, del, ... ( 즉시 text에 반영이 되는 키 )
// - keyup : 누른 키를 뗄 때
// - event.key : 사용자가 누른 키 값을 반환
// - event.keyCode : 사용자가 누른 키 코드(ASCII) 값을 반환
포커스 이벤트
// - focus : 포커스를 받을 때
// - blur : 포커스가 해지 될 때
// - change : 셀렉트 박스의 값이 변경 될 때
폼 이벤트
// - submit : 양식(Form)이 제출하기전에 발생, 주로 전송될 값을 유효성 체크할 때 사용
진행 이벤트
// - load : 객체가 로드 될 때
// - error : 외부 파일 ex) 문서, 이미지, 비디오, ... 로드 중 오류 발생 시
Github