4 ๋ถ„ ์†Œ์š”

๐Ÿ“š JAVASCRIPT


๐Ÿ“š Event

Event ๋ž€?

๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ


<bojdy>
    <div onclick="javascript:open();"> ํด๋ฆญ </div>
<script type="text/javascript">
    function open(){
        alert('์•ˆ๋…•ํ•˜์„ธ์š”');
    }
    </script>
    </body>

    -> ํด๋ฆญ์„ ๋ˆ„๋ฅด๋ฉด '์•ˆ๋…•ํ•˜์„ธ์š”'๋ผ๋Š” ์ฐฝ์ด ๋œฌ๋‹ค.
  • onclick
    ๋งˆ์šฐ์Šค๋กœ Element๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • ondblclick
    ๋งˆ์šฐ์Šค๋กœ Element๋ฅผ ๋”๋ธ” ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onmouseup
    ๋งˆ์šฐ์Šค๋กœ Element์—์„œ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ์˜ฌ๋ ธ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onmousedown
    ๋งˆ์šฐ์Šค๋กœ Element์—์„œ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onmouseover
    ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์—ฌ์„œ Element ๋ฐ–์—์„œ ์•ˆ์œผ๋กœ ๋“ค์–ด์˜ฌ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onmouseout
    ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์—ฌ์„œ Element ์•ˆ์—์„œ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onmousemove
    ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ผ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ

Frame ( UI ) ์ด๋ฒคํŠธ


window.onload = function(){
    ๋กœ๋”ฉ ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๊ฒƒ๋“ค์„ ์ž‘์„ฑ
}

  • onload
    document, image, frame ๋“ฑ์ด ๋ชจ๋‘ ๋กœ๋”ฉ ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onabort
    ์ด๋ฏธ์ง€ ๋“ฑ์˜ ๋‚ด์šฉ์„ ๋กœ๋”ฉํ•˜๋Š” ๋„์ค‘ ์ทจ์†Œ ๋“ฑ์œผ๋กœ ์ค‘๋‹จ ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onerror
    ์ด๋ฏธ์ง€ ๋“ฑ์˜ ๋‚ด์šฉ์„ ๋กœ๋”ฉ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onresize
    document, element์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค.

  • onscroll
    document, element๊ฐ€ ์Šคํฌ๋กค ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onselect
    ํ…์ŠคํŠธ๋ฅผ ์„ ํƒ ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

ํผ ( Form ) ์ด๋ฒคํŠธ

  • Form ๊ด€๋ จ ์ด๋ฒคํŠธ๋Š” ์—ฌ๋Ÿฌ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ€์žฅ ์•ˆ์ •์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ด๋ฒคํŠธ์ด๋‹ค.
  • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฒคํŠธ๋กœ form์ด ์ „์†ก๋  ๋•Œ์—๋Š” submit ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • Form์„ ์ดˆ๊ธฐํ™” ํ• ๋•Œ๋Š” reset ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • submit ๊ณผ reset ์€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.

  • onsubmit
    form์ด ์ „์†ก๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onreset
    ์ž…๋ ฅ form์ด reset๋  ๋–„ ๋ฐœ์ƒํ•œ๋‹ค.

  • oninput
    input ๋˜๋Š” textarea์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onchange
    select box, checkbox, radio button์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onfocus(focusin)
    input๊ณผ ๊ฐ™์€ ์š”์†Œ์— ์ž…๋ ฅ ํฌ์ปค์Šค๊ฐ€ ๋“ค์–ด ์˜ฌ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onblur(focusout)
    input๊ณผ ๊ฐ™์€ ์š”์†Œ ๋“ฑ์—์„œ ์ž…๋ ฅ ํฌ์ปค์Šค๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

  • onselect
    input, textarea์— ์ž…๋ ฅ ๊ฐ’ ์ค‘ ์ผ๋ถ€๊ฐ€ ๋งˆ์šฐ์Šค ๋“ฑ์œผ๋กœ ์„ ํƒ๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ

์ธ๋ผ์ธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ


<script type="text/javascript">
    var msg1 = function(){
        alert('HI');
    };
    var msg2 = function(){
        var msg = document.querySelector('#div1');
        msg.style.color='red';
    };
    </script>
    </head>
    <body>
        <div id = "div1" onclick="msg1(); msg2();">์•ˆ๋…•ํ•˜์„ธ์š” ~ </div>
        </body>


    -> HI๋ผ๋Š” ์ฐฝ์ด ๋–ด๋‹ค๊ฐ€ '์•ˆ๋…•ํ•˜์„ธ์š” ~' ๋ผ๋Š” ๋ฌธ์ž๊ฐ€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค. ( ๋‘๊ฐœ์˜ ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ )

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹

  • JavaScript ์—์„œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
  • JS์— ๋“ฑ๋กํ•จ์œผ๋กœ์จ HTML ์ฝ”๋“œ์™€ JS ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ( ์ธ๋ผ์ธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฐฉ์‹์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ )
  • ์ด๋ฒคํŠธ ๋Œ€์ƒ์ด ๋˜๋Š” ํŠน์ • DOM์„ ์„ ํƒํ•˜๊ณ  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ์— ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋งŒ์„ ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ( ๋์— ์„ ์–ธ๋œ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋œ๋‹ค. )


<body>
  <div id="div1">ํด๋ฆญํ•ด๋ณด์„ธ์š”</div>

  <script type="text/javascript">
    document.querySelector("#div").onclick = function () {
      alert("์•ˆ๋…•ํ•˜์„ธ์š”");
    };
  </script>
</body>

-> div1 ์š”์†Œ์— ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด '์•ˆ๋…•ํ•˜์„ธ์š”' ์ฐฝ์„ ๋„์šด๋‹ค

addEventListener ๋ฉ”์†Œ๋“œ ๋ฐฉ์‹

  • addEventListener ( ์ด๋ฒคํŠธ ์ด๋ฆ„, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ, ์บก์ณ๋ง ์—ฌ๋ถ€ )
  • ์ด๋ฒคํŠธ ์ด๋ฆ„์€ on์„ ๋นผ๊ณ  ์‚ฌ์šฉํ•œ๋‹ค. ์บก์ฒ˜๋ง ์—ฌ๋ถ€๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
  • ๋Œ€์ƒ DOM ์š”์†Œ์— ์ด๋ฒคํŠธ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ ๋  ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ( ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ )๋ฅผ ์ง€์ •ํ•œ๋‹ค.
  • ์žฅ์ 
    • ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์บก์ฒ˜๋ง๊ณผ ๋ฒ„๋ธ”๋ง์„ ์ง€์›ํ•œ๋‹ค.
    • HTML ์š”์†Œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  DOM์— ๋Œ€ํ•ด ๋™์ž‘ํ•œ๋‹ค.



์š”์†Œ์˜ ๊ฐ’ ๊ฒ€์‚ฌ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ addEventListner ์‚ฌ์šฉ๋ฒ• -> ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋‚ด๋ถ€์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹

<body>
  <label>์•„์ด๋”” <input type="text" /></label>
  <div class="message"></div>

  <script>
    const MIN_ID_LENGTH = 8;
    const input = document.querySelector('input[type="text"]');
    const msg = document.querySelector('.message');

    function checkVal(len){
        if(input.value.length < script len){
            msg.innerHTML = '๊ฐ’์€' + len + '์ž ์ด์ƒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”';
        }else{
            msg.innerHTML = '';
        }
    }

    input.addEventListener('blur', function () {
        checkVal(MIN_ID_LENGTH);
    })
  </script>
</body>

-> ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ณณ์—์„œ 8์ž ๋ณด๋‹ค ์ ์€ ๋ฌธ์ž์—ด๋กœ ์ž…๋ ฅํ•˜๋ฉด ๊ฐ’์€ 8์ž ์ด์ƒ
์ž…๋ ฅํ•ด์ฃผ์„ธ์š” ๋ผ๊ณ  ์ถœ๋ ฅ๋œ๋‹ค.

๋ฒ„๋ธ”๋ง๊ณผ ์บก์ณ๋ง

Event ๋งˆ๋ฌด๋ฆฌ

JavaScript์—์„œ์˜ ๋งŽ์€ Event์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.
ํ™•์‹คํžˆ ๊ธฐ๋Šฅ๋„ ๋งŽ๊ณ  ์ด๋ฒคํŠธ์˜ ์ˆ˜๋„ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค.
์ด๊ฒƒ๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋‹ˆ ํ™•์‹คํžˆ ์›น์˜ ๊ธฐ๋ณธ์ธ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์ƒํ•ด์•ผ ํ• ์ง€ ๊ฐ์ด ์žกํžˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ ๋˜๋Š” ์ด๋ฒคํŠธ๋“ค์€ ํ™•์‹คํžˆ ์•Œ์•„๋‘ฌ์„œ ๋‚˜์ค‘์— ๊ตฌํ˜„ํ•  ๋•Œ ๋งŽ์ด ์จ๋จน์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ 3๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ ๋‹ค ์•Œ๊ณ  ์žˆ์–ด์•ผ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.