-
자바스크립트 - 이벤트웹프로그래밍/javascript 2018. 7. 20. 13:54
-이벤트 종류
마우스 / 키보드 / HTML프레임 / HTML 입력 양식 / 유저 인터페이스/ 구조 변화 / 터치 이벤트
-이벤트 모델
문서 객체에 이벤트를 연결하는 방법
-이벤트 핸들러
이벤트를 처리하는 함수?
-onclick
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
// 변수를 선언합니다.
var header = document.getElementById('header');
// 이벤트를 연결합니다.
header.onclick = function () {
alert('클릭');
};
// 이벤트를 제거합니다.
//header.onclick = null;
};
</script>
</head>
<body>
<h1 id="header">Click</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script>
</script>
</head>
<body>
<h1 onclick="var alpha=10;alert(alpha);">Click</h1>
</body>
</html>
<head>
<script>
function whenClick(e) {
alert('클릭');
}
</script>
</head>
<body>
<h1 onclick="whenClick(event)">Click</h1>
</body>
-onclick 이벤트 전파(이중 submit)
버블링: 어떤 이벤트가 자식노드에서 부모 노드 순으로 발생하는 것
<head>
<script>
window.onload = function () {
// 이벤트를 연결합니다.
document.getElementById('header').onclick = function () {
alert('header');
};
document.getElementById('paragraph').onclick = function () {
alert('paragraph');
};
};
</script>
</head>
<body>
<h1 id="header">
<p id="paragraph">Pagagraph</p>
</h1>
</body>
-onclick 이벤트 전파 방지 stopPropagation / cancelBubble(익스플로러 전용)
<head>
<script>
window.onload = function () {
// 이벤트를 연결합니다.
document.getElementById('header').onclick = function () {
alert('header');
};
document.getElementById('paragraph').onclick = function (e) {
// 이벤트 객체를 처리합니다.
var event = e || window.event;
// 이벤트 발생을 알립니다.
alert('paragraph');
// 이벤트 전달을 제거합니다.
event.cancelBubble = true;
if (event.stopPropagation) {
event.stopPropagation();
}
};
};
</script>
</head>
<body>
<h1 id="header">
<p id="paragraph">Pagagraph</p>
</h1>
</body>
-onsubmit
<head>
<script>
window.onload = function () {
// 이벤트를 연결합니다.
document.getElementById('my_form').onsubmit = function () {
// 변수를 선언합니다.
var pass = document.getElementById('pass').value;
var pass_check = document.getElementById('pass_check').value;
// 비밀번호가 같은지 확인합니다.
if (pass == pass_check) {
alert('성공');
} else {
alert('다시 입력해주세요.');
return false;
}
};
};
</script>
</head>
<body>
<form id="my_form">
<label for="name">이름</label><br/>
<input type="text" name="name" id="name"/><br/>
<label for="pass">비밀번호</label><br/>
<input type="password" name="pass" id="pass"/><br/>
<label for="pass_check">비밀번호 확인</label><br/>
<input type="password" id="pass_check"/><br/>
<input type="submit" value="제출"/>
</form>
</body>
-onsubmit : return
<head>
<script>
function whenSubmit() {
// 변수를 선언합니다.
var pass = document.getElementById('pass').value;
var pass_check = document.getElementById('pass_check').value;
// 비밀번호가 같은지 확인합니다.
if (pass == pass_check) {
alert('성공');
} else {
alert('다시 입력해주세요.');
return false;
}
}
</script>
</head>
<body>
<form id="my_form" onsubmit="return whenSubmit()">
<label for="name">이름</label><br/>
<input type="text" name="name" id="name"/><br/>
<label for="pass">비밀번호</label><br/>
<input type="password" name="pass" id="pass"/><br/>
<label for="pass_check">비밀번호 확인</label><br/>
<input type="password" id="pass_check"/><br/>
<input type="submit" value="제출"/>
</form>
</body>
-attachEvent(익스플로러 전용)
<!DOCTYPE html>
<html>
<head>
<script>
// 윈도우가 로드될 때
window.attachEvent('onload', function () {
// myHeader를 가져옵니다.
var header = document.getElementById('myHeader');
// 이벤트를 연결합니다.
header.attachEvent('onclick', function () { alert('클릭'); });
header.attachEvent('onclick', function () { alert('클릭'); });
header.attachEvent('onclick', function () { alert('클릭'); });
});
</script>
</head>
<body>
<h1 id="myHeader">Click</h1>
</body>
</html>
-detachEvent
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
var header = document.getElementById('myHeader');
var handler = function () { alert('클릭'); };
header.attachEvent('onclick', handler);
header.detachEvent('onclick', handler);
};
</script>
</head>
<body>
<h1 id="myHeader">Click</h1>
</body>
</html>
-addEventListener
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function () {
var header = document.getElementById('myHeader');
header.addEventListener('click', function () {
this.innerHTML += '+';
});
};
</script>
</head>
<body>
<h1 id="myHeader">Click</h1>
</body>
</html>
'웹프로그래밍 > javascript' 카테고리의 다른 글
자바스크립트 - 기본 내장객체 (0) 2018.07.20 자바스크립트 - BOM (Browser Object Model) (0) 2018.07.20 자바스크립트 - DOM (Document Object Model) (0) 2018.07.20