BOM
정적 이벤트 모델)<input type="button" onclick="changeColor();"/>
DOM
동적 이벤트 모델)<script>
document.form1.btn1.onmouseover = function() {
};
</script>
마우스 커서 좌표
💭 onclick
- 마우스 이벤트 X, 키보드를 사용해서 발생 가능하다.
- 클릭 이벤트에서는 마우스 좌표를 접근하면 안된다.
- 좌표를 얻어내지 못한다. ★
입력행위
가 중요함키보드에 존재하는 모든 키에 반응 ★★★
문자가 필요없는
경우 사용문자가 아닌 키는 반응 안한다. ★★★
문자 필요한
경우 사용💭 이벤트 작동 순서 - 'a'키를 누르면 > 텍스트 박스 'a' 입력
1. 사용자 'a'키 누른다.
1.1 keydown 이벤트 발생
1.2 컨트롤(텍스트박스)에 값이 입력 ★★★
1.3 keyup 이벤트 발생
<input type="text" value=""> -> HTML
txt1.value -> JavaScript
💭 태그(텍스트박스)의 조작은 태그의 속성을 조작한다.
<form name="form1">
<input type="text" name="txt1">
<input type="button" name="btn1" value="끄기">
</form>
<script>
var txt1 = window.document.form1.txt1;
var btn1 = window.document.form1.btn1;
btn1.onclick = m1;
function m1() {
txt1.value = '홍길동'; // 쓰기
alert(txt1.value); // 읽기
txt1.size = 50;
txt1.type = 'radio' // 이런 행동은 되도록 금지!! - 3번
txt1.readOnly = true; // 4번, 5번
// <p align="center"> 열거형 > 문자열
p.align = 'center';
// <body bgcolor="blue"> 색상 > 문자열
window.document.body.bgColor = 'blue';
}
</script>
💭 하나의 버튼(스위치)으로 on/off 역할을 하는 버튼을 토글 버튼(Toggle Button)이라고 한다.
addEventListener()
동일한 이벤트를 여러번 추가 가능하다.
함수를 목록으로 관리한다. (Inovacation List)
리스트에 함수를 추가한다.
addEventListener() 메소드에서는 "on"이 붙지 않은 이벤트 타입을 사용해야 한다.
💭 BOM 이벤트는 동일한 이벤트를 덮어쓰기 한다.
var showBtn = document.getElementById("btn"); // 아이디가 "btn"인 요소를 선택함.
showBtn.addEventListener('click', showText); // 선택한 요소에 click 이벤트 리스너를 등록함.
function showText() {
document.getElementById("text").innerHTML = "짜잔~!! 텍스트가 나타났어요!!";
}
var btn = document.getElementById("btn"); // 아이디가 "btn"인 요소를 선택함.
btn.addEventListener("click", clickBtn); // 선택한 요소에 click 이벤트 리스너를 등록함.
btn.addEventListener("mouseover", mouseoverBtn); // 선택한 요소에 mouseover 이벤트 리스너를 등록함.
btn.addEventListener("mouseout", mouseoutBtn); // 선택한 요소에 mouseout 이벤트 리스너를 등록함.
function clickBtn() {
document.getElementById("text").innerHTML = "버튼이 클릭됐어요!";
}
function mouseoverBtn() {
document.getElementById("text").innerHTML = "버튼 위에 마우스가 있네요!";
}
function mouseoutBtn() {
document.getElementById("text").innerHTML = "버튼 밖으로 마우스가 나갔어요!";
}
removeEventListner()
function clickBtn() {
btn.removeEventListener("mouseover", mouseoverBtn);
btn.removeEventListener("mouseout", mouseoutBtn);
document.getElementById("text").innerHTML = "이벤트 리스너가 삭제되었어요!";
}