불로구

자바스크립트 - 이벤트 타겟, 이벤트 취소( (preventDefault() ) 본문

프로그래밍/JavaScript

자바스크립트 - 이벤트 타겟, 이벤트 취소( (preventDefault() )

맹이맹이 2020. 6. 25. 00:14
반응형

이벤트 타겟과 target 프로퍼티

- target 프로퍼티는 이벤트 타겟 객체를 가리킨다.

- 이벤트 타켓이란 이벤트를 유발시킨 객체

이벤트 객체의 프로퍼티를 출력해보자

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        document.addEventListener("DOMContentLoaded",init,false);
        function init(){
            let btn = document.getElementsByTagName("button")[0];
            btn.addEventListener("click",function(e){
                let text = "type : " + e.type + "<br>" + "target : " + e.targer
                + "<br>" + "currentTarget : " + e.currentTarget + "<br>"
                + "defaultPrevented :" + e.defaultPrevented;
                let pTag = document.getElementById("p");
                pTag.innerHTML = text;
            },false);
            
        }
     </script>
</head>
<body>
    <h3>targer</h3>
    <p id="p">버튼 클릭하면 객체 출력</p>
    <button>클릭</button>
</body>
</html>

클릭 전

클릭 후

type

프로퍼티

현재 발생한 이벤트 종류 나타냄

target

프로퍼티

이벤트 발생시킨 객체

currentTarget

프로퍼티

현재 이벤트 리스너 실행 중인 DOM 객체

defaultPrevented

프로퍼티

이벤트의 디폴트 행동이 취소됐는지 T/F

preventDefault

메소드

이벤트의 디폴트 행동 취소 메소드

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

- 이벤트의 디폴트 행동을 취소시키는 메소드

1) 이벤트 리스너에서 false를 리턴하기

<a href="http://www.naver.com" onclick="return false">이동 불가</a>

2) 체크박스 활용

3) preventDefault() 호출

<a href="http://www.naver.com" onclick="event.preventDefault()">이동불가</a>

과연 모든 이벤트의 디폴트 행동을 금지할 수 있는가?!

- 모든 이벤트에 대해 행동을 취소할 수 있는 것은 아니다!

- 이벤트 객체의 cancelable 프로퍼티가 true인 경우만 취소가 가능하다!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function noAction(e){
            e.preventDefault();
        }
     </script>
</head>
<body>
    <a href="http://www.naver.com" onclick="noAction(event)">네이버 이동</a>
</body>
</html>

네이버 이동을 클릭해도 아무런 행동이 나타나지 않는다!

혹시나 궁금한 점은 댓글로 남겨주세요!

반응형
Comments