type(프로퍼티) // 현재 발생한 이벤트의 종류를 나타내는 문자열(click,load 등)

target(프로퍼티) // 이벤트를 발생시킨 객체(DOM 객체 혹은 HTML 태그)

currentTarget(프로퍼티) // 현재 이벤트 리스너를 실행하고 있는 DOM 객체

defaultPrevented(프로퍼티) // 이벤트의 디폴트 행동이 취소되었는지를 나타내는 true/false 값

preventDefault()(메소드) // 이벤트의 디폴트 행동을 취소시키는 메소드


* 이벤트의 디폴트 행동 취소, preventDefault()

HTML 태그 중 몇몇은 특정 이벤트에 대해 디폴트 행동을 한다.

ex)

<a>태그를 클릭하면 웹 페이지를 로드하는것이나

submit 버튼을 클릭하면 폼 데이터를 웹 서버로 전송하는 것이나

reset 버튼을 클릭하면 폼을 초기화하는 것들이다.


자바스크립트로 이러한 디폴트 행동이 일어나지 않게 할 수 있는데 2가지 방법이 있다.


1. 이벤트 리스너에서 false를 리턴하면 디폴트 행동을 취소 시킬 수 있다.

ex) <a href="http://www.naver.com" onclick="return false">이동 안되는 링크</a>

ex) <input type="check box" onclick="return false">체크 안되는 체크 박스</a>


2. 이벤트 객체의 preventDefault()를 호출하면 된다.

ex) <a href="http://www.naver.com" onclick="event.preventDefault()">이동 안되는 링크</a>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>이벤트의 디폴트 행동 취소</title>
<script>
function query() {
    var ret = confirm("네이버로 이동하시겠습니까?");
    return ret; // confirm()의 리턴 값은 true 또는 false
}
 
function noAction(e) {
    e.preventDefault(); // 이벤트의 디폴트 행동 강제취소
}
</script>
</head>
<body>
<h3>이벤트의 디폴트 행동 취소</h3>
<hr>
<a href="http://www.naver.com"
    onclick="return query()">
    네이버로 이동할 지 물어보는 링크</a>
<hr>
<form>
    <input type="checkbox">빵(체크 됨)<br>
    <input type="checkbox"
        onclick="noAction(event)">술(체크 안됨)
</form>
</body>
</html>
 
cs



Posted by 너래쟁이
: