이벤트
가 발생이벤트
가 발생했을 때 어떠한 액션을 위한 함수를 호출하는 데 그 함수가 바로 이벤트 리스너
자바스크립트 코드에서 프로퍼티로 등록
HTML 태그에 속성으로 등록
addEventListener 메소드 사용
element.addEventListener(이벤트명, 실행할 함수명(listener), 옵션);
이벤트가 발생할 때 이벤트 객체를 가져올 수 있다
클릭 이벤트
mousedown vs click
먼저 mousedown 이벤트가 발생하고 마우스를 놓았을 때 click 이벤트 발생
form event
keyup vs key down keypress
keyup
keydown
키보드를 눌렀을 때 실행
키보드를 계속 누르고 있을 때 실행
사용자가 눌렀던 키의 문자가 입력되었을 때 발생
keypress
키보드를 눌렀을 때 실행
키보드를 누르고 있을 때 한 번만 실행
사용자가 눌렀던 키의 문자가 입력되었을 시 발생
가장 깊게 중첩된 요소에 이벤트가 발생했을 때 이벤트가 위로 전달됨
p에 할당된 핸들러 -> div에 할당된 핸들러 -> form에 할당된 핸들러
event.stopPropagation()
p 요소를 클릭해도 event Bubbling이 발생하지 않기에 부모 요소들의 핸들러도 호출이 되지 않음
제일 상단에 있는 요소에서 아래로 이벤트가 내려오는 것
위 코드를 보면 버튼이 2개가 있고 버튼을 누르면 경고창이 나옵니다
자바스크립트로 버튼 하나를 생성하였습니다
하지만 새로 생성된 버튼을 누르면 경고창이 나오지 않는 데, 그 이유는 버튼이 생기기 전에 이미 각 버튼 요소에 핸들러가 더해졌기 때문입니다