๐Ÿ“Web Developing/JavaScript ๊ธฐ์ดˆ

์ด๋ฒคํŠธ์™€ ์ด๋ฒค์ฒ˜๋ฆฌ๊ธฐ

Hush 2022. 6. 19. 17:02

์ด๋ฒคํŠธ ์•Œ์•„๋ณด๊ธฐ

์›น ๋ฌธ์„œ ์˜์—ญ ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋™์ž‘์„ ์ด๋ฒคํŠธ๋ผ๊ณ  ํ•œ๋‹ค.

 

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

๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฒ„ํŠผ์ด๋‚˜ ํœ  ๋ฒ„ํŠผ์„ ์กฐ์ž‘ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช…
click ์‚ฌ์šฉ์ž๊ฐ€ HTML ์š”์†Œ๋ฅผ ํด๋ฆญํ•  ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
dblclick ์‚ฌ์šฉ์ž๊ฐ€ HTML ์š”์†Œ๋ฅผ ๋”๋ธ”ํด๋ฆญํ•  ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
mousedown ์‚ฌ์šฉ์ž๊ฐ€ ์š”์†Œ ์œ„์—์„œ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
mouseover ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๊ฐ€ ์š”์†Œ ์œ„๋กœ ์˜ฎ๊ฒจ์งˆ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
mouseout ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๊ฐ€ ์š”์†Œ๋ฅผ ๋ฒ—์–ด๋‚  ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
mouseup ์‚ฌ์šฉ์ž๊ฐ€ ์š”์†Œ ์œ„์— ๋†“์ธ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์—์„œ ์†์„ ๋—„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

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

ํ‚ค๋ณด๋“œ์—์„œ ํŠน์ • ํ‚ค๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช…
keydown ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ๋™์•ˆ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
keypress ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค
keyup ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค์—์„œ ์†์„ ๋—„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๋ฌธ์„œ ๋กœ๋”ฉ ์ด๋ฒคํŠธ

์„œ๋ฒ„์—์„œ ์›น ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฌธ์„œ๋ฅผ ์œ„์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜๋Š” ๋“ฑ ์›น ๋ฌธ์„œ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ๋ณด์—ฌ ์ฃผ๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ์ด๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช…
abort ๋ฌธ์„œ๊ฐ€ ์™„์ „ํžˆ ๋กœ๋”ฉ๋˜๊ธฐ ์ „์— ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๋ฅผ ๋ฉˆ์ท„์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
error ๋ฌธ์„œ๊ฐ€ ์ •ํ™•ํžˆ ๋กœ๋”ฉ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
load ๋ฌธ์„œ ๋กœ๋”ฉ์ด ๋๋‚˜๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค
resize ๋ฌธ์„œ ํ™”๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
scroll ๋ฌธ์„œ ํ™”๋ฉด์ด ์Šคํฌ๋กค๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
unload ๋ฌธ์„œ์—์„œ ๋ฒ—์–ด๋‚  ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

ํผ ์ด๋ฒคํŠธ

ํผ์€ ๋กœ๊ทธ์ธ, ๊ฒ€์ƒ‰, ๊ฒŒ์‹œํŒ, ์„ค๋ฌธ ์กฐ์‚ฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š”๋ชจ๋“  ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช…
blur ํผ ์š”์†Œ์— ํฌ์ปค์Šค๋ฅผ ์žƒ์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
change ๋ชฉ๋ก์ด๋‚˜ ์ฒดํฌ ์ƒํƒœ ๋“ฑ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
<input>, <select>, <textarea> ํƒœ๊ทธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
focus ํผ ์š”์†Œ์— ํฌ์ปค์Šค๊ฐ€ ๋†“์˜€์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
<label>, <select>, <textarea>, <button> ํƒœ๊ทธ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.
reset ํผ์ด ๋ฆฌ์…‹๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
submit submit ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ์•Œ์•„๋ณด๊ธฐ

์ด๋ฒคํŠธ์—์„  ์—ฌ๋Ÿฌ ๋™์ž‘์„ ์‹คํ–‰ํ•œ๋‹ค.

์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ ๋˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ HTML ํƒœ๊ทธ์— ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ๊ธฐ ๋ฒ„์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ์ง€๊ธˆ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

 

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ์˜ ๊ธฐ๋ณธ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋จผ์ € HTML ํƒœ๊ทธ ์•ˆ์—์„œ 'on' ๋‹ค์Œ์— '์ด๋ฒคํŠธ๋ช…'์„ ๋ถ™์—ฌ์„œ ์†์„ฑ ์ด๋ฆ„์„ ๋งŒ๋“ค๊ณ , ๊ทธ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ธฐ์˜ ํ•จ์ˆ˜๋ช…์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

<ํƒœ๊ทธ on์ด๋ฒคํŠธ๋ช… = "ํ•จ์ˆ˜๋ช…">

์˜ˆ๋ฅผ ๋“ค์–ด ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ–ˆ์„ ๋•Œ์˜ ์ด๋ฒคํŠธ์ด๋ฆ„์€ click์ด๋‹ค.

<a>ํƒœ๊ทธ ์•ˆ์— onclick์†์„ฑ์„ ๋งŒ๋“ค๊ณ  ์†์„ฑ๊ฐ’์œผ๋กœ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์•Œ๋ฆผ ์ฐฝ์„ ํ‘œ์‹œํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li><a href="#" onclick="alert('๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค')">Green</a></li>
        <li><a href="#" onclick="alert('๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค')">Orange</a></li>
        <li><a href="#" onclick="alert('๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค')">Purple</a></li>
    </ul>
</body>
</html>

์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ํ›„์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ทธ ๋ช…๋ น์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li><a href="#" onclick="ChangeBg('Green')">Green</a></li>
        <li><a href="#" onclick="ChangeBg('Orange')">Orange</a></li>
        <li><a href="#" onclick="ChangeBg('Purple')">Purple</a></li>
    </ul>
    <div id="result" style="width:100%; height:50vw; background-color: black;">

    </div>
    <script>
        function ChangeBg(color) {
            var result = document.querySelector('#result');
            result.style.backgroundColor = color;
        }
    </script>
</body>
</html>