๐๐ป[Js] ๊ธฐ๋ณธ๋์์ ์ทจ์ | ํผ | ๋ฌธ์๋ก๋ฉ
- -
๋ชจ๋ ํฌ์คํ ์ ์ธํ๋ฐ [์ํ์ฝ๋ฉ] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ
์ถ์ฒ๋ ์๋์ ์ฃผ์๋ก "egoing Lee"๋์ ์๋ฃ์ ๋๋ค.
์์ ์ ์ธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํด๋๋ ๋ชฉ์ ์ผ๋ก ํฌ์คํ ํ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ๋์์ ์ทจ์
์น๋ธ๋ผ์ฐ์ ์ ๊ตฌ์ฑ์์๋ค์ ๊ฐ๊ฐ ๊ธฐ๋ณธ์ ์ธ ๋์ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
- ํ ์คํธ ํ๋์ ํฌ์ปค์ค๋ฅผ ์ค ์ํ์์ ํค๋ณด๋๋ฅผ ์ ๋ ฅํ๋ฉด ํ ์คํธ๊ฐ ์ ๋ ฅ๋๋ค.
- ํผ์์ 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์ ํฌํจํ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๊ณ ์๋ค.
'Languages > Java Script' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Js]๋คํธ์ํฌ ํต์ | Ajax (0) | 2021.02.10 |
---|---|
[Js] ๋ง์ฐ์ค | jQuery ์ด๋ฒคํธ | on ApI ์ฌ์ฉ๋ฒ (0) | 2021.02.10 |
๐๐ป[Js] addEventListener() | ์ด๋ฒคํธ ์ ํ | ๋ฒ๋ธ๋ง๊ณผ ์บก์ฒ๋ง (0) | 2021.02.10 |
[Js] ์ด๋ฒคํธ | ๋ฑ๋ก๋ฐฉ๋ฒ & inline | ํ๋กํผํฐ ๋ฆฌ์ค๋ (0) | 2021.02.10 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค