์ƒˆ์†Œ์‹

Languages/Java Script

๐Ÿ‘‰๐Ÿป[Js] ๊ธฐ๋ณธ๋™์ž‘์˜ ์ทจ์†Œ | ํผ | ๋ฌธ์„œ๋กœ๋”ฉ

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ์ธํ”„๋Ÿฐ [์ƒํ™œ์ฝ”๋”ฉ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์˜์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "egoing Lee"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

www.inflearn.com/course/javascript-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B0%95%EC%A2%8C#

 

์›น๋ธŒ๋ผ์šฐ์ € Javascript (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) - ์ธํ”„๋Ÿฐ

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

www.inflearn.com


๊ธฐ๋ณธ๋™์ž‘์˜ ์ทจ์†Œ

์›น๋ธŒ๋ผ์šฐ์ €์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค์€ ๊ฐ๊ฐ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๋ฐฉ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ํ…์ŠคํŠธ ํ•„๋“œ์— ํฌ์ปค์Šค๋ฅผ ์ค€ ์ƒํƒœ์—์„œ ํ‚ค๋ณด๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ…์ŠคํŠธ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.
  • ํผ์—์„œ submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ๋‹ค.
  • a ํƒœ๊ทธ๋ฅผ ํด๋ฆญํ•˜๋ฉด href ์†์„ฑ์˜ URL๋กœ ์ด๋™ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘๋“ค์„ ๊ธฐ๋ณธ ์ด๋ฒคํŠธ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

inline

์ด๋ฒคํŠธ์˜ ๋ฆฌํ„ด๊ฐ’์ด false์ด๋ฉด ๊ธฐ๋ณธ ๋™์ž‘์ด ์ทจ์†Œ๋œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ•œ ๋™์ž‘์„ ์ด์šฉํ•˜์—ฌ a ํƒœ๊ทธ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•˜๊ณ  ์žˆ๋‹ค.

<p>
    <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
</p>
<p>
    <a href="http://opentutorials.org" onclick="if(document.getElementById('prevent').checked) return false;">opentutorials</a>
</p>
<p>
    <form action="http://opentutorials.org" onsubmit="if(document.getElementById('prevent').checked) return false;">
            <input type="submit" />
    </form>
</p>

๊ฒฐ๊ตญ ๋ฆฌํ„ด๊ฐ’์„ false๋กœ ์ฃผ๋ฉด ๋ธŒ๋ผ์šฐ์ €์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋™์ž‘์„ ์ทจ์†Œ ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

 

property ๋ฐฉ์‹

๋ฆฌํ„ด ๊ฐ’์ด false์ด๋ฉด ๊ธฐ๋ณธ๋™์ž‘์ด ์ทจ์†Œ๋œ๋‹ค. (์‹คํ–‰)

<p>
    <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
</p>
<p>
    <a href="http://opentutorials.org">opentutorials</a>
</p>
<p>
    <form action="http://opentutorials.org">
            <input type="submit" />
    </form>
</p>
<script>
    document.querySelector('a').onclick = function(event){
        if(document.getElementById('prevent').checked)
            return false;
    };
     
    document.querySelector('form').onclick = function(event){
        if(document.getElementById('prevent').checked)
            return false;
    };
 
</script>

์œ„์˜ inline๋ฐฉ์‹๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค.

 

addEventListener ๋ฐฉ์‹

์ด ๋ฐฉ์‹์—์„œ๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด์˜ preventDefault ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ ๋™์ž‘์ด ์ทจ์†Œ๋œ๋‹ค. (์‹คํ–‰)

<p>
            <label>prevent event on</label><input id="prevent" type="checkbox" name="eventprevent" value="on" />
        </p>
        <p>
            <a href="http://opentutorials.org">opentutorials</a>
        </p>
        <p>
            <form action="http://opentutorials.org">
                    <input type="submit" />
            </form>
        </p>
        <script>
            document.querySelector('a').addEventListener('click', function(event){
                if(document.getElementById('prevent').checked)
                    event.preventDefault();
            });
             
            document.querySelector('form').addEventListener('submit', function(event){
                if(document.getElementById('prevent').checked)
                    event.preventDefault();
            });
 
        </script>

ie9 ์ดํ•˜ ๋ฒ„์ „์—์„œ๋Š” event.returnValue๋ฅผ false๋กœ ํ•ด์•ผ ํ•œ๋‹ค.

 


์ด๋ฒคํŠธ ํƒ€์ž…

์•„๋ž˜๋Š” onclick ์ด๋ฒคํŠธ ํƒ€์ž…์˜ ์˜ˆ์ œ๋‹ค. ์ด๋ฒคํŠธ ํƒ€์ž…์ด๋ผ๋Š” ๊ฒƒ์€ ์ด๋ฒคํŠธ์˜ ์ข…๋ฅ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

<input type="button" onclick="alert(1);" />

์›น๋ธŒ๋ผ์šฐ์ €๋Š” ๋งŽ์€ ์ข…๋ฅ˜์˜ ์ด๋ฒคํŠธ ํƒ€์ž…์„ ์ œ๊ณตํ•œ๋‹ค.


ํผ

ํผ๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ ํƒ€์ž…์„ ์•Œ์•„๋ณด์ž.

 

submit

submit์€ ํผ์˜ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ๋ช…๋ น์ธ submit์‹œ์— ์ผ์–ด๋‚œ๋‹ค. form ํƒœ๊ทธ์— ์ ์šฉ๋œ๋‹ค.

์•„๋ž˜ ์˜ˆ์ œ๋Š” ์ „์†ก ์ „์— ํ…์ŠคํŠธ ํ•„๋“œ์— ๊ฐ’์ด ์ž…๋ ฅ ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋งŒ์•ฝ ๊ฐ’์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ „์†ก์„ ์ค‘๋‹จํ•œ๋‹ค.

<form id="target" action="result.html">
    <label for="name">name</label> <input id="name" type="name" />
    <input type="submit" />
</form>
<script>
var t = document.getElementById('target');
t.addEventListener('submit', function(event){
    if(document.getElementById('name').value.length === 0){
        alert('Name ํ•„๋“œ์˜ ๊ฐ’์ด ๋ˆ„๋ฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค');
        event.preventDefault();
    }
});
</script>

์•„๋ž˜ ๊ตฌ๋ฌธ์€ ์ „์†ก์„ ์ทจ์†Œํ•˜๋Š” ๋ช…๋ น์ด๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๊ธฐ๋ณธ ๋™์ž‘์˜ ์ทจ์†Œ์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณธ๋‹ค.

event.preventDefault();

์ฆ‰ ์œ„ ์ฝ”๋“œ๋Š” id๊ฐ€ name์ธ ํƒœ๊ทธ์— ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ value๊ฐ€ 0์ด๋ผ๋ฉด(์•„๋ฌด ๊ธ€์”จ๋„ ์—†๋‹ค๋ฉด) ์ „์†ก์„ ์ทจ์†Œํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

change

change๋Š” ํผ ์ปจํŠธ๋กค์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋‹ค.

input(text,radio,checkbox), textarea, select ํƒœ๊ทธ์— ์ ์šฉ๋œ๋‹ค.

<p id="result"></p>
<input id="target" type="name" />
<script>
var t = document.getElementById('target');
t.addEventListener('change', function(event){
    document.getElementById('result').innerHTML=event.target.value;
});
</script>

 

blur, focus

focus๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ํฌ์ปค์Šค๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ, blur์€ ํฌ์ปค์Šค๊ฐ€ ์‚ฌ๋ผ์กŒ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋‹ค. 

๋‹ค์Œ ํƒœ๊ทธ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํƒœ๊ทธ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค. <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, <title>

<input id="target" type="name" />
<script>
var t = document.getElementById('target');
t.addEventListener('blur', function(event){
    alert('blur');  
});
t.addEventListener('focus', function(event){
    alert('focus'); 
});
</script>

๋ฌธ์„œ ๋กœ๋”ฉ

์›นํŽ˜์ด์ง€๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›นํŽ˜์ด์ง€์˜ ๋ชจ๋“  ์š”์†Œ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜์•ผ ํ•œ๋‹ค. ์ด๊ฒƒ์„ ์•Œ๋ ค์ฃผ๋Š” ์ด๋ฒคํŠธ๊ฐ€ load, DOMContentLoaded์ด๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋Š” null์ด๋‹ค. <p id="target">Hello</p>๊ฐ€ ๋กœ๋”ฉ๋˜๊ธฐ ์ „์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

<html>
    <head>
        <script>
        var t = document.getElementById('target');
        console.log(t);
        </script>
    </head>
    <body>
        <p id="target">Hello</p>
    </body>
</html>

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ฌธ์„œ ๋์— ์œ„์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

<p id="target">Hello</p>
<script>
    var t = document.getElementById('target');
    console.log(t);
</script>

 

์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

lucete1230-cyberpolice.tistory.com/364

 

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ load ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

<head>
    <script>
        window.addEventListener('load', function(){
            var t = document.getElementById('target');
            console.log(t);
        })
    </script>
</head>
<body>
    <p id="target">Hello</p>
</body>

๊ทธ๋Ÿฐ๋ฐ load ์ด๋ฒคํŠธ๋Š” ๋ฌธ์„œ๋‚ด์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค(์ด๋ฏธ์ง€, ์Šคํฌ๋ฆฝํŠธ)์˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋๋‚œ ํ›„์— ์‹คํ–‰๋œ๋‹ค.

์ด๊ฒƒ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ๋™์ด ๋„ˆ๋ฌด ์ง€์—ฐ๋˜๋Š” ๋ถ€์ž‘์šฉ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋‹ˆ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.(ํ•ด์™ธ ์‚ฌ์ดํŠธ ์ฃผ์†Œ๊ฑฐ๋‚˜, ๋„ˆ๋ฌด ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์ด ํฌ๊ฑฐ๋‚˜ ..๋“ฑ)

 

DOMContentLoaded๋Š” ๋ฌธ์„œ์—์„œ ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค.

<html>
    <head>
        <script>
            window.addEventListener('load', function(){
                console.log('load');
            })
            window.addEventListener('DOMContentLoaded', function(){
                console.log('DOMContentLoaded');
            })
        </script>
    </head>
    <body>
        <p id="target">Hello</p>
    </body>
</html>

DOMContentLoaded ์ด๋ฒคํŠธ๋Š” IE9์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.