ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 - 이벤트
    웹프로그래밍/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>