πŸ’» Programming/JS, TS

[JavaScript] 이벀트 객체

Jiwon() 2024. 1. 13. 21:04

Event

  • μœ μ €κ°€ μ‚¬μ΄νŠΈμ˜ νŠΉμ • 뢀뢄에 μž…λ ₯, 클릭, 슀크둀 ν•˜λŠ” λ“±μ˜ 행동을 μ˜λ―Έν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜λ©΄ 이벀트λ₯Ό νƒμ§€ν•˜μ—¬ νŠΉμ • μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν•  수 μžˆλ‹€.
  • μ›Ήμ˜ 경우 μ΄λ²€νŠΈλŠ” λΈŒλΌμš°μ € μœˆλ„μš° λ‚΄μ—μ„œ λ°œμƒλ˜λŠ”λ°, λ‹€μŒμ™€ 같은 λ‹€μ–‘ν•œ 이벀트 νƒ€μž…λ“€μ΄ μžˆλ‹€.
    • μœ μ €κ°€ μ–΄λ–€ μš”μ†Œλ₯Ό μ„ νƒν•˜κ±°λ‚˜ μ–΄λ–€ μš”μ†Œ μœ„μ— μ»€μ„œλ₯Ό μ˜¬λ €λ‘”λ‹€(hover).
    • μœ μ €κ°€ ν‚€λ³΄λ“œμ—μ„œ ν‚€λ₯Ό μ„ νƒν•œλ‹€.
    • μœ μ €κ°€ λΈŒλΌμš°μ € 창의 크기λ₯Ό μž¬μ‘°μ •ν•˜κ±°λ‚˜ λ‹«λŠ”λ‹€.
    • μ›Ή νŽ˜μ΄μ§€κ°€ λ‘œλ”©μ„ μ™„λ£Œν–ˆλ‹€.
    • 양식(form)이 μ œμΆœλ˜μ—ˆλ‹€.
    • λΉ„λ””μ˜€κ°€ μž¬μƒλ˜κ±°λ‚˜, λ©ˆμΆ”κ±°λ‚˜, ν˜Ήμ€ 끝났닀.
    • 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.

 

 

μ΄λ²€νŠΈλ¦¬μŠ€λ„ˆμ˜ μ½œλ°±ν•¨μˆ˜

let paragraphElement = document.body.firstElementChild;

function changeParagraphText() {
  paragraphElement.textContent = 'Clicked!';
}
  
// paragraphElement.addEventListener('click', () => {
//   paragraphElement.textContent = 'Clicked!';
// });
paragraphElement.addEventListener('click', changeParagraphText); // μ½œλ°±ν•¨μˆ˜
  • 콜백 ν•¨μˆ˜
    • λ‹€λ₯Έ ν•¨μˆ˜μ˜ μΈμˆ˜λ‘œμ„œ λ„˜κ²¨μ£ΌλŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ ν•¨μˆ˜λ₯Ό λ§ν•œλ‹€. μ½œλ°±μ„ λ„˜κ²¨λ°›λŠ” μ½”λ“œλŠ” 이 μ½œλ°±μ„ ν•„μš”μ— 따라 μ¦‰μ‹œ μ‹€ν–‰ν•  μˆ˜λ„ 있고, μ•„λ‹ˆλ©΄ λ‚˜μ€‘μ— μ‹€ν–‰ν•  μˆ˜λ„ μžˆλ‹€.

 

 

이벀트 객체

// 1. κ³ μ „ 이벀트 μ‚¬μš©
element.onμ΄λ²€νŠΈνƒ€μž…λͺ… = function(event){

}

// 2. addEventLister() μ‚¬μš©
element.addEventListener('μ΄λ²€νŠΈνƒ€μž…', function(event){

});

 

  • addEventListener μ½œλ°±ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°λ₯Ό μ„€μ •ν•΄μ£Όλ©΄(이 λ•Œ νŒŒλΌλ―Έν„° 이름은 무엇이든 상관없닀. ν•¨μˆ˜μ˜ 첫 번째 νŒŒλΌλ―Έν„°λ₯Ό μžλ™μœΌλ‘œ 이벀트 객체둜 μ§€μ •ν•œλ‹€. ν•˜μ§€λ§Œ 보톡 e λ˜λŠ” event둜 λ„€μ΄λ°ν•˜λŠ” 것이 관둀이닀.) 이 이벀트 κ°μ²΄λŠ” ν•΄λ‹Ή μš”μ†Œμ— λ°œμƒν•œ λͺ¨λ“  μ΄λ²€νŠΈμ— λŒ€ν•œ 정보λ₯Ό 담은 객체이닀.
  • 이벀트 객체의 λ‚΄μš©μ€ κ·Έ μ΄λ²€νŠΈμ— λ”°λΌμ„œ 달라진닀.
    • ex. click μ΄λ²€νŠΈμ—μ„œλŠ” MouseEvent 객체, input μ΄λ²€νŠΈμ—μ„œλŠ” InputEvent 객체가 λ°œμƒν•œλ‹€.

 

event.target.value와 event.data

event.target.valueλŠ” 항상 ν˜„μž¬ μš”μ†Œμ— eventλ₯Ό 톡해 μ €μž₯된 μ™„μ „ν•œ 값을 μ œκ³΅ν•΄μ£ΌλŠ” λ°˜λ©΄μ— event.dataλŠ” λ§ˆμ§€λ§‰ 이벀트 λ°œμƒμœΌλ‘œ μΆ”κ°€λœ ꡬ체적인 μž…λ ₯값을 좜λ ₯ν•œλ‹€.

 

 

μ½˜μ†”μ— event.target.value 좜λ ₯ μ‹œ 둜그

 

 

μ½˜μ†”μ— event.data 좜λ ₯ μ‹œ 둜그