커리큘럼(12-30/변경)
01. Java
02. git
03. Database
04. Jsp [Server]
05. HTML,CSS
07. JS (v)
06. 미니프로젝트-2W (v)
08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
JS(Java Script)
이벤트 핸들러
이벤트
- 화면에서 클릭이나, 동작시 발생하는 동적인 기능
- 태그와 스크립트의 이벤트를 연결하는 방식에는
인라인 이벤트 모델
, 기본 이벤트 모델
, 표준 이벤트 모델
이 있으며 이벤트 앞에 on을 붙임
이벤트 종류
이벤트 종류 |
설명 |
click |
마우스를 클릭했을 때 이벤트 발생 |
dblclick |
마우스를 더블클릭했을 때 이벤트 발생 |
mouseover |
마우스를 오버했을 때 이벤트 발생 |
mouseout |
마우스를 아웃했을 때 이벤트 발생 |
mousedown |
마우스를 눌렀을 때 이벤트 발생 |
mouseup |
마우스를 떼었을 때 이벤트 발생 |
mousemove |
마우스를 움직였을 때 발생 |
keydown |
키를 눌렀을 때 이벤트 발생 |
keyup |
키를 떼었을 때 이벤트 발생 |
keypress |
키를 누른 상태에서 이벤트 발생 |
focus |
포커스가 이동되었을 떄 이벤트 발생 |
blur |
포커스가 벗어났을 때 이벤트 발생 |
change |
값이 변경되었을 때 이벤트 발생(주로 select태그에서 사용) |
submit |
submit 버튼을 눌렀을 떄 이벤트 발생 |
reset |
reset버튼을 눌렀을 때 이벤트 발생 |
select |
input, textarea 요소 텍스트를 드래그해서 선택했을 때 이벤트 발생 |
load |
로딩이 완료되었을 떄 이벤트 발생 |
abort |
이미지의 로딩이 중단되었을 때 이벤트 발생 |
resize |
사이즈가 변경되었을 떄 이벤트 발생 |
scroll |
스크롤바를 움직였을 때 이벤트 발생 |
이벤트 연결 방식
1. 인라인 이벤트 모델
- html요소에 직접 이벤트를 연결하는 방식
- 태그 안에 이벤트 종류가 들어가며 on이 붙음
- onclick같은 이벤트 안에는 모든 스크립트 코드가 들어갈 수 있음
<body>
<button type="button" onclick="some('aaa');">인라인이벤트</button>
<script>
function some(name){
alert(name+'님이 버튼을 클릭!');
}
</script>
</body>
2. 기본 이벤트 모델
- HTML요소를 취득 후 이벤트를 익명함수로 연결하는 방식
- HTML요소를 취득할 때는 순서상 취득할 요소가 요소 취득 명령어 이전에 있어야 함
<script>
// 화면이 로드된 이후에 동작하는 이벤트
// 단, (window.onload이벤트) 화면에서 1개만 사용할 수 있음
window.onload = function(){
// 태그를 코드 영역으로 얻는다.
// 이벤트를 실행시키는 구문이 태그보다 이후에 작성되어야 함
var btn = document.getElementById("btn");
console.log(btn);
btn.onclick=function(){
alert("기본이벤트 호출");
}
}
</script>
<body>
<butt on type="button" id="btn">기본이벤트</button>
</body>
3. 표준 이벤트 모델
- 객체.addEventListener(이벤트, 함수) 방식으로 연결
- 표준 이벤트 모델은 이벤트에 on을 붙이지 않음
<body>
<button type="button" id="btn">이벤트리스너</button>
<script>
var btn = document.getElementById("btn");
// 방법1
// btn.addEventListener('click',some);
// function some(){
// alert("이벤트리스너 클릭");
// }
// 방법2
btn.addEventListener('click',function(){
alert("이벤트리스너 클릭");
});
</script>
</body>
DOM & BOM
DOM(Document Object Model)
- 문서객체 모델이라 하며, document객체를 의미
- 요소의 선택, 삭제 생성 등을 위해 사용
태그 노드 선택
메서드 |
설명 |
getElementById() |
Id와 일치하는 요소의 태그를 선택 |
getElementByName() |
name과 일치하는 요소의 태그 전부 선택 |
getElementByClassName() |
class와 일치하는 요소의 태그 전부 선택 |
getElementByTagName() |
tag명과 일치하는 요소의 태그 전부 선택 |
querySelector() |
요소 선택방법이 css와 동일(첫번째 요소만 선택) |
querySelectorAll() |
요소 선택방법이 css와 동일(모든 태그 선택) |
<body>
<!--
getElementById
getElementsByName - 복수형
getElementsByClassName - 복수형
getELementsByTagName - 복수형
-->
<button type="button" id="btn1">체크박스요소 확인하기</button>
<input type="text" name="inter" value="1">1번
<input type="text" name="inter" value="2">2번
<input type="text" name="inter" value="3">3번
<input type="text" name="inter" value="4">4번
<input type="text" name="inter" value="5">5번
<script>
var cks = document.getElementsByName('inter');
var btn1 = document.getElementById("btn1");
btn1.onclick=function(){
for(var i=0;i<cks.length;i++){
console.log(cks[i]);
}
}
</script>
<hr>
<input type="radio" name="radio" class="my-radio">프로그램
<input type="radio" name="radio" class="my-radio">디자인
<input type="radio" name="radio" class="my-radio">시스템
<script>
var rd = document.getElementsByClassName('my-radio');
for(var i=0;i<rd.length;i++){
console.log(rd[i]);
}
</script>
<hr>
<h3>돔트리의 탐색</h3>
<select id="sel1">
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
</select>
<select id="sel2">
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
</select>
<script>
// var options = document.getElementsByTagName('option');
// console.log(options);
var sel = document.getElementById("sel1");
var options = sel.getElementsByTagName("option");
console.log(options);
</script>
</body>
<img src="img/1.jpg" alt="대표이미지" width="200" class="profile-img">
<section>
<select id="season">
<option value="1.jpg">봄</option>
<option value="2.jpg">여름</option>
<option value="3.jpg">가을</option>
<option value="4.jpg">겨울</option>
</select>
</section>
<script>
var img = document.querySelector(".profile-img");
var season = document.getElementById("season");
season.addEventListener("change",function(){
img.src="img/"+season.value;
})
</script>