Javascript ์ด๋ฒคํธ(1)
๐ ์ด๋ฒคํธ
์นํ์ด์ง์์ ์ด๋ ํ ์ํธ์์ฉ์ด ๋ฐ์ํ์ ๋, ์ ํด์ง ์ฌ๊ฑด์ ๋ฐ์์ํค๋ ๊ฒ์ ์ด๋ฒคํธ๋ผ๊ณ ํ๋ค.
๐ Event ๊ตฌ์ฑ ์์
- ์ด๋ฒคํธ ์์ค
- ์ํธ์์ฉ์ด ๋ฐ์ํ ์์น
- DOM์์(HTML)๊ณผ ๊ด๋ จ์ด ์๊ณ , ์ฃผ๋ก input์ด ์๋ค.
- ์ด๋ฒคํธ ํด๋์ค
- ์ด๋ฒคํธ์ ์ข ๋ฅ๋ฅผ ์๋ฏธํ๋ค.
- click, focus, load, mouseover ๋ฑ์ ์ข ๋ฅ๊ฐ ์๋ค.
- ์ด๋ฒคํธ ํธ๋ค๋ฌ
- ์ฌ์ฉ์๊ฐ ์ค์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผฐ์ ๋, ๊ทธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ
- ์ธ๋ผ์ธ ๋ฐฉ์
- ํ๋กํผํฐ ๋ฐฉ์
- ์ด๋ฒคํธ ๊ฐ์ฒด ๋ฐฉ์
- addEventListener
๐ Event Class
1) ๋ง์ฐ์ค ์ด๋ฒคํธ
์ด๋ฒคํธ | ์ค๋ช |
---|---|
click | ์์์ ๋ง์ฐ์ค ํด๋ฆญ |
dbclick | ์์์ ๋ง์ฐ์ค ๋๋ธ ํด๋ฆญ |
mouseover | ์์ ์์ ๋ง์ฐ์ค ์ฌ๋ฆผ |
mouseout | ์์์์ ๋ง์ฐ์ค๊ฐ ๋ฒ์ด๋ฌ์ ๋ |
mousedown | ์์์ ๋ง์ฐ์ค๋ฅผ ๋๋ ์ ๋ |
mouseup | ์์์์ ๋ง์ฐ์ค๋ฅผ ๋ผ์์ ๋ |
mousemove | ์์์์ ๋ง์ฐ์ค๋ฅผ ์์ง์์ ๋ |
contextmenu | ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ ๋๋ ์ ๋ ๋์ค๋ ๋ฉ๋ด๊ฐ ๋์ค๊ธฐ ์ ์ด๋ฒคํธ ๋ฐ์ |
2) ํค๋ณด๋ ์ด๋ฒคํธ
์ด๋ฒคํธ | ์ค๋ช |
---|---|
keydown | ํค๋ฅผ ๋๋ ์ ๋ |
keyup | ํค๋ฅผ ๋ผ์์ ๋ |
keypress | ํค๋ฅผ ๋๋ฅธ ์ํ์์ ์ด๋ฒคํธ ๋ฐ์ |
3) ํผ ์ด๋ฒคํธ
์ด๋ฒคํธ | ์ค๋ช |
---|---|
focus | ์์์ ํฌ์ปค์ค๊ฐ ์ด๋๋์์ ๋ |
blur | ์์์์ ํฌ์ปค์ค๊ฐ ๋ฒ์ด๋ฌ์ ๋ |
change | ์์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ ๋ |
submit | submit ๋ฒํผ์ ๋๋ ์ ๋ |
reset | reset ๋ฒํผ์ ๋๋ ์ ๋ |
select | input์ด๋ textarea ์์ ์์ ํ ์คํธ๋ฅผ ๋๋๊ทธํ์ฌ ์ ํํ์ ๋ ์ด๋ฒคํธ ๋ฐ์ |
4) ๋ก๋ ๋ฐ ๊ธฐํ ์ด๋ฒคํธ
์ด๋ฒคํธ | ์ค๋ช |
---|---|
load | ํ์ด์ง์ ๋ก๋ฉ์ด ์๋ฃ๋์์ ๋ |
abort | ์ด๋ฏธ์ง์ ๋ก๋ฉ์ด ์ค๋จ๋์์ ๋ |
unload | ํ์ด์ง๊ฐ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋๋ ๋ |
resize | ์์์ ์ฌ์ด์ฆ๊ฐ ๋ณ๊ฒฝ๋์์ ๋ |
scroll | ์คํฌ๋กค๋ฐ๋ฅผ ์์ง์์ ์ด๋ฒคํธ ๋ฐ์ |
๐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฑ๋ก ๋ฐฉ๋ฒ
1) ์ธ๋ผ์ธ(inline) ๋ฐฉ์
<input type="button" onclick="alert('Hello world');" value="button" />
์ธ๋ผ์ธ ๋ฐฉ์์ ํ๊ทธ์ ์์ฑ์ผ๋ก ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ๋ฑ๋กํ๋ค.
2) ํ๋กํผํฐ(property) ๋ฐฉ์
<button id='btn'>button</button>
<script>
var targetBtn = document.getElementById('btn');
targetBtn.onclick = function(){
alert('Hello world');
// ์คํ >> Hello world
}
</script>
ํ๋กํผํฐ ๋ฐฉ์์ ํด๋นํ๋ ์์์ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ด๋ค.
3) ์ด๋ฒคํธ ๊ฐ์ฒด ๋ฐฉ์
<button id='btn'>button</button>
<script>
var targetBtn = document.getElementById('btn');
targetBtn.onclick = function(ev){
alert('Hello world' + ev.target.value);
// ์คํ >> Hello world button
}
</script>
์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ธ์๋ก ๋๊ธฐ๋ ๋ฐฉ์์ธ๋ฐ, ์ฌ๊ธฐ์ ev.target๊ณผ targetBtn์ ๊ฐ์ ํํ์ด๋ผ๋ ๊ฒ๋ ์์๋์. targetBtn.value๋ฅผ ๋ฃ์ด๋ ๋๊ฐ์ด ์ถ๋ ฅ๋๋ค.
4) addEventListener(โevent classโ, handler function(), capture)
<button id='btn'>button</button>
<script>
var targetBtn = document.getElementById('btn');
targetBtn.addEventListener('click', ev=>{
alert('Hello world' + ev.target.value);
// ์คํ >> Hello world button
}, false);
</script>
- ์ฒซ ๋ฒ์งธ ์ธ์ : ์ด๋ฒคํธ ์ข ๋ฅ
- ๋ ๋ฒ์งธ ์ธ์ : ์ด๋ฒคํธ ๋ฐ์ ์์ ํธ์ถ๋ ํจ์
- ์ธ ๋ฒ์งธ ์ธ์ : ์บก์ฒ๋ง ์ฌ์ฉ ์ฌ๋ถ (default : false)
addEventListener ๋ฉ์๋๋ฅผ ํตํด ์ด๋ฒคํธ๋ฅผ ์ง์ ํ๊ฒ ๋๋ฉด, ํ๋์ ์ด๋ฒคํธ์ ๋ํด ์ฌ๋ฌ ๊ฐ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ง์ ํด์ค ์ ์๊ณ , HTML๋ฟ๋ง ์๋๋ผ ๋ชจ๋ DOM์์์ ์ฌ์ฉ๊ฐ๋ฅํ์ฌ ๊ฐ์ฅ ๊ถ์ฅ๋๋ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค. ๋ํ ์บก์ฒ๋ง๊ณผ ๋ฒ๋ธ๋ง์ ์ง์ํด์ฃผ๋๋ฐ, ๋ค์ ํฌ์คํ ์์ ๋ค๋ฃฐ ์์ ์ด๋ค.
์ฐธ๊ณ
๋๊ธ๋จ๊ธฐ๊ธฐ