μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ComputerScience
- λ°μν
- νλ‘κ·Έλλ°
- μν
- μ€λΌν΄
- html
- κΉλ―Έκ²½μλ§νμμ
- μ»΄ν¨ν°κ³Όν
- κΉνλ¨
- μ₯νΈμμ€
- λΌνλΌμ€μλ§λ
- JavaScript
- Python
- database
- μΉνΌλΈλ¦¬μ±
- λ°μ΄ν°λ² μ΄μ€
- λ§μΌλ΄κ°μΈμμλ€μμ°λ€λ©΄
- μλ°μ€ν¬λ¦½νΈ
- κΉλ―Έκ²½
- λ μ
- μΉνμ΄μ§λ§λ€κΈ°
- Java
- νμ΄μ¬
- κ°λ°
- css
- Kλ°°ν°λ¦¬λ 볼루μ
- μ±
- μλ°
- Kλ°°ν°λ¦¬
- μ½λ©
- Today
- Total
JiYoung Dev π₯
javascript CallBack ν¨μ & jQuery (2023.05.03) λ³Έλ¬Έ
π CallBackν¨μ
μ½λλ₯Ό ν΅ν΄ λͺ μμ μΌλ‘ νΈμΆνλ ν¨μκ° μλλΌ μ΄λ€ μ΄λ²€νΈκ° λ°μνκ±°λ νΉμ μμ μ λλ¬νμ λ μμ€ν μμ νΈμΆνλ ν¨μ (λͺ μμ νΈμΆ X)
ꡬ쑰μμΌλ‘λ ν¨μ μμ νλΌλ―Έν°λ‘ ν¨μκ° λ€μ΄κ°λ ꡬ쑰
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>callback</title>
</head>
<body>
<button>Click!</button>
<script>
// callback ν¨μ
// : νΉμ μ΄λ²€νΈκ° λ°μνμ λ νΉμ νΉμ μμ μ λλ¬νμ λ
// μμ€ν
μμ νΈμΆνλ ν¨μ (λͺ
μμ νΈμΆ X)
// : ν¨μ μμ νλΌλ―Έν°λ‘ ν¨μκ° λ€μ΄κ°λ ꡬ쑰
// 1. μ΄λ²€νΈ νΈλ€λ¬ : addEventListner(μ΄λ²€νΈνμ
, μ΄λ²€νΈνΈλ€λ¬)
// λ²νΌμ ν΄λ¦νμ λ λ©μμ§λ₯Ό μΆλ ₯
document.querySelector('button').addEventListener('click', ()=>{
console.log('π±');
})
// 2. νμ νΈλ€λ¬ : setTimeout(νμνΈλ€λ¬, μκ°μ 보(ms))
// νΉμ μκ°μ΄ μ§λ μ΄νμ λ©μμ§λ₯Ό μΆλ ₯
console.log('π¬'); //1
console.log('π±π'); //2
setTimeout(()=>{
console.log('π'); //4
}, 2500)
console.log('π'); //3
</script>
</body>
</html>
μ½λ°±ν¨μ μ€μ΅
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>callback practice</title>
</head>
<body>
<button>Click!</button>
<br><br>
<!-- μκ° μ λ³΄κ° μΆλ ₯λ κ³΅κ° -->
<div id="container"></div>
<script>
// HTML νλ©΄μ 1μ΄λΆν° 10μ΄κΉμ§ μκ° μ λ³΄κ° μΆλ ₯λλλ‘!
let divVal = document.getElementById('container');
for(let i = 1 ; i <= 10 ; i++){
setTimeout(()=>{
divVal.innerHTML += `${i}μ΄β°<br>`;
}, i*1000)
}
// λ²νΌ ν΄λ¦μ 'click' λ©μμ§ μΆλ ₯
document.querySelector('button').addEventListener('click', ()=>{
divVal.innerHTML += 'clickπ±<br>'
})
</script>
</body>
</html>
π JQuery
π λΌμ΄λΈλ¬λ¦¬ vs νλ μμν¬
곡ν΅μ : ν¨μ(μ½λ)λ₯Ό κ΅μ₯ν λ§μ΄ λͺ¨μλμ κ²
μ°¨μ΄μ : λκ° μ μ΄λ₯Ό νλκ°?
- λΌμ΄λΈλ¬λ¦¬λ λ΄(κ°λ°μ)κ° μ£Όμ²΄κ° λμ΄ νμν μμ€λ₯Ό κ°μ Έλ€ μ¬μ©νλ κ²
→ λ΄κ° μνλ λꡬλ₯Ό μ νν΄μ μ¬μ©νλ κ² (μ : 곡ꡬν¨)
- νλ μμν¬λ μ£Όμ΄μ§ νκ²½ μμμ κ·μΉμ λ§μ‘±μν€λ©΄μ μ¬μ© (μ : μ€κ³λ)
βοΈ λΌμ΄λΈλ¬λ¦¬
μννΈμ¨μ΄λ₯Ό κ°λ°ν λ μ»΄ν¨ν° νλ‘κ·Έλ¨μ΄ μ¬μ©νλ λΉνλ°μ± μμμ λͺ¨μ. μ¦, νΉμ κΈ°λ₯μ λͺ¨μλ μ½λ, ν¨μλ€μ μ§ν©μ΄λ©° μ½λ μμ±μ νμ© κ°λ₯ν λꡬλ€μ μλ―Έν¨ (jQuery, React.js λ±)
βοΈ νλ μμν¬
νλ μμν¬λ μνλ κΈ°λ₯ ꡬνμ μ§μ€νμ¬ κ°λ°ν μ μλλ‘ μΌμ ν ννμ νμν κΈ°λ₯μ κ°μΆκ³ μλ λΌλ, 골격μ μλ―Έ. μ ν리μΌμ΄μ κ°λ°μ νμμ μΈ μ½λ, μκ³ λ¦¬μ¦, DBμ°λκ³Ό κ°μ κΈ°λ₯λ€μ μν΄ μ΄λ μ λ λΌλ(ꡬ쑰)λ₯Ό μ 곡νλ©° μ΄λ¬ν λΌλ μμμ μ¬μ©μλ μ½λλ₯Ό μμ±νμ¬ μ ν리μΌμ΄μ μ κ°λ°ν¨. μ±/μλ² λ±μ ꡬλ, λ©λͺ¨λ¦¬ κ΄λ¦¬ λ±μ 곡ν΅λ λΆλΆμ νλ μμν¬κ° κ΄λ¦¬νλ©° μ¬μ©μλ νλ μμν¬κ° μ ν΄μ€ λ°©μλλ‘ ν΄λ¦¬μ€, λ©μλλ₯Ό ꡬν
(μλ° - spring, νμ΄μ¬ - Django, Flask, μλλ‘μ΄λ - android λ±)
π jQuery
λͺ¨λ λΈλΌμ°μ μμ λμνλ μλ°μ€ν¬λ¦½νΈλ₯Ό κ°νΈνκ² μ¬μ©ν μ μλλ‘ λ¨μνμν¨ μ€νμμ€ κΈ°λ° λΌμ΄λΈλ¬λ¦¬
ν¬λ‘μ€ λΈλΌμ°μ§ : κ°μ λμμ΄μ§λ§ λΈλΌμ°μ μ λ°λΌμ μ¬λ¬κ°μ§ ννλ‘ μμ±
→ μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κ²μ΄ JS λΌμ΄λΈλ¬λ¦¬μΈ jQuery
βοΈ jQuery λΌμ΄λΈλ¬λ¦¬ μ°λ
νμ νλ μν©μμλ λ€νΈμν¬ λ°©μμ νμ© - λ€μ΄λ‘λ λ°©μμμλ μ μ΄μΏΌλ¦¬ μ μ₯ κ²½λ‘κ° λ€ λ€λ₯Ό μ μκΈ° λλ¬Έμ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery start</title>
<!-- 1. λ€μ΄λ‘λ λ°©μ -->
<!-- HTML λ¬Έμμ jQuery λΌμ΄λΈλ¬λ¦¬ μ°κ²° -->
<!-- <script src="./js/jquery-3.6.4.min.js"></script> -->
<!-- 2. λ€νΈμν¬ λ°©μ -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
</head>
<body>
<p>jQuery start</p>
<button id="textBtn">TEXT</button>
<button id="htmlBtn">HTML</button>
<script>
// jQuery/$
// → wrapper(λνΌ) : μΈμλ‘ μ λ¬λ μμλ€μ jQueryμ κΈ°λ₯μ±μ λΆκ°ν΄μ λ°ν
// jQuery κ°μ²΄ λ°ν
// $(μ νμ).λ©μλ()
// 1. pμμ κ°μ Έμ€κΈ°
// (1) μλ°μ€ν¬λ¦½νΈ λ¬Έλ²
let valJS = document.querySelector('p');
console.log(valJS);
// (2) μ μ΄μΏΌλ¦¬ λ¬Έλ²
// let valJQ = jQuery('p');
let valJQ = $('p')
// jQeury λμ $ κΈ°νΈ μ¬μ© κ°λ₯
console.log(valJQ);
// 2. TEXTλ²νΌ ν΄λ¦μ, λ΄μ©λ§
// JS → innerText μ¬μ©
// JQ → text() μ¬μ©
$('#textBtn').click(()=>{
// valJS.innerText = 'λ΄μ© λ³κ²½!';
$('p').text('λ΄μ© λ³κ²½!');
})
// 3. HTMLλ²νΌ ν΄λ¦μ, νκ·ΈκΉμ§
// JS → innerHTML
// JQ →
$('#htmlBtn').click(()=>{
// valJS.innerHTML = '<a href="#">aνκ·Έλ‘ λ³κ²½</a>';
$('p').html('<a href="#">aνκ·Έλ‘ λ³κ²½!</a>');
})
</script>
</body>
</html>
βοΈ jQuery μμ κ°μ Έμ€κΈ° λ° λμ μ€μ νκΈ°
βοΈ jQuery μ€νμΌ λ³κ²½νκΈ°
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery style</title>
<script src="./js/jquery-3.6.4.min.js"></script>
</head>
<body>
<p>jQuery style</p>
<button>change</button>
<script>
// λ²νΌμ ν΄λ¦νμ λ, p μμμ μ€νμΌ μ μ΄!
$('button').click(()=>{
// μ€νμΌ μ μ΄
// JS → .style
// jQ → css()Aimage.png
// 1. νμ€μ© μ
λ ₯
// $('p').css('color','lightgreen');
// $('p').css('background-color','black');
// $('p').css('font-style','italic');
// 2. chain λ°©μ μ
λ ₯
// jQuery λ©μλλ λ©μλκ° μ μ΄νλ λμμ 리ν΄
// → λ©μλλ₯Ό κ³μν΄μ λΆμ¬λ£λ chain λ°©μ μ¬μ© κ°λ₯
// $('p').css('color','lightgreen')
// .css('background-color','black')
// .css('font-style','italic');
// 3. κ°μ²΄ ννλ‘ μ
λ ₯
$('p').css({
'color' : 'lightgreen',
'background-color' : 'black',
'font-style' : 'italic'
})
})
</script>
</body>
</html>
μ€νμΌ λ³κ²½ μ λ ₯λ°©μ 3κ°μ§
κ°μ§κ³ μ¬ μμμ λ©μλκ° λ€ λ€λ₯΄λ©΄ → νμ€ λ°©μ
κ°μ§κ³ μ¬ μμλ§ κ°κ³ λ©μλκ° λ€λ₯΄λ©΄ → chain λ°©μ
κ°μ§κ³ μ¬ μμμ λ©μλκ° κ°μΌλ©΄ → κ°μ²΄ νν
βοΈ jQuery μ½λ μμ κ΄λ ¨
βοΈ jQuery μ΄λ²€νΈ
μΉ νμ΄μ§λ₯Ό λ°©λ¬Έν μ¬μ©μκ° μννλ λμ μ€ν μμ μ μ μ΄
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mouse event</title>
<style>
.parentDiv{
width: 200px;
height: 200px;
background-color: wheat;
padding: 50px;
margin: 10px;
}
.childDiv{
width: 100%;
height: 100%;
background-color: olive;
}
</style>
<script src="./js/jquery-3.6.4.min.js"></script>
</head>
<body>
<div class="parentDiv">
<div class="childDiv"></div>
</div>
<script>
// λ§μ°μ€ μ΄λ²€νΈ
// mouseover → λ§μ°μ€ μ¬λ Έμ λ, μμ μμ ν¬ν¨(↔mouseout)
// mouseenter → λ§μ°μ€ μ¬λ Έμ λ, μμ μμ μ μΈ(↔mouseleave)
$('.parentDiv')
.mouseover(()=>{console.log('mouseoverπ³');})
.mouseenter(()=>{console.log('mouseenterπ₯©');})
</script>
</body>
</html>
βοΈ on λ©μλ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./js/jquery-3.6.4.min.js"></script>
</head>
<body>
<h1>π Event μ§μ </h1>
<h1>π Event μ§μ </h1>
<h1>π Event μ§μ </h1>
<button>Change!</button>
<script>
// $(μ νμ).on(μ΄λ²€νΈνμ
, μ΄λ²€νΈνΈλ€λ¬)
// 1. λ²νΌ ν΄λ¦μ, h1νκ·Έ κΈμ¨μ νλμ >> click
$('button').on('click', ()=>{
$('h1').css('color','blue');
})
// 2. h1νκ·Έ λ§μ°μ€ μ¬λ Έμ λ, κΈμ¨μ λΉ¨κ°μ >> mouseover
$('h1').on('mouseover', function(){
$(this).css('color', 'red');
// this : νΈμΆλ HTML κ°μ²΄λ₯Ό μ μ₯
// - νμ΄ν ν¨μμμλ μλνμ§ μμ
})
// 3. h1νκ·Έ λ§μ°μ€ λ΄λ Έμ λ, κΈμ¨μ κ²μμ >> mouseout
$('h1').on('mouseout', (e)=>{
console.log(e.target);
// νμ΄ν ν¨μμμ this λμ e.target μ¬μ©
$(e.target).css('color', 'black');
})
</script>
</body>
</html>
'full stack > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
javascript λμ μ΄λ²€νΈ, λΉλκΈ°ν΅μ ajax (2023.05.04) (0) | 2023.05.04 |
---|---|
javascript DOM μμμ μ ν λ° input, style, img λ³κ²½ (2023.05.02) (0) | 2023.05.02 |
javascript DOM (2023.05.01) (0) | 2023.05.01 |
javascript κ°μ²΄(Object) (2023.04.28) (1) | 2023.04.29 |
javascript λ°°μ΄ μ€μ΅, ν¨μ (2023.04.27) (0) | 2023.04.27 |