All :L

Web(Front) - Javascript-Event ๋ณธ๋ฌธ

STUDY/Front End

Web(Front) - Javascript-Event

ofijwe 2024. 8. 28. 15:23
๋ฐ˜์‘ํ˜•

๐Ÿ“’ EVENT

1๏ธโƒฃ ์ด๋ฒคํŠธ (Event)

  • ์›น ํŽ˜์ด์ง€์— ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์žˆ์„ ๊ฒฝ์šฐ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
  • ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜(๋งˆ์šฐ์Šค ํด๋ฆญ, ํ‚ค๋ณด๋“œ ๋ˆ„๋ฅด๊ธฐ ๋“ฑ)์˜ ์ด๋ฒคํŠธ ์กด์žฌ
  • JS๋ฅผ ์‚ฌ์šฉํ•ด DOM์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ๊ฐ์ง€ → ์ด๋ฒคํŠธ ๋Œ€์‘ ์ž‘์—… ์ˆ˜ํ–‰
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜์™€ ์—ฐ๊ฒฐ → ํ•จ์ˆ˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ๋˜๊ธฐ ์ „์— ์‹คํ–‰ X → ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(Handler) or ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(Listener)๋ผ๊ณ  ํ•จ. → ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ

2๏ธโƒฃ ์ด๋ฒคํŠธ ์ข…๋ฅ˜

  • ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ
    • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ
    • ๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ์ „๋‹ฌ๋˜๋Š” ์ด๋ฒคํŠธ ๊ฐ์ฒด๋Š” ๋งˆ์šฐ์Šค ์œ„์น˜, ๋ฒ„ํŠผ ์ƒํƒœ ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ์žˆ์Œ
    • onclick , ondbclick , onmouseup, onmousedown ๋“ฑ
  • ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ
    • ํ‚ค๋ณด๋“œ ์ปค์„œ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋‚˜ํƒ€๋‚˜๋Š” ์ง€์ ์—์„œ ํ‚ค๋ณด๋“œ ์กฐ์ž‘ํ•  ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
    • ํ‚ค๋ณด๋“œ ์กฐ์ž‘์€ ์šด์˜์ฒด์ œ ์˜ํ–ฅ ๋ฐ›์Œ → ํŠน์ • ํ‚ค๊ฐ€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ์ „๋‹ฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
    • ํ‚ค๋ณด๋“œ ์ปค์„œ๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ์š”์†Œ X → document์—์„œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
    • onkeypress : ํ‚ค๋ณด๋“œ๊ฐ€ ๋ˆŒ๋ ค์กŒ์„ ๋•Œ ๋ฐœ์ƒ (ASCII) โ‘ก
    • onkeydown : ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ ๋ฐœ์ƒ (KeyCode) โ‘ 
    • onkeyup : ๋ˆŒ๋ €๋˜ ํ‚ค๋ณด๋“œ๋ฅผ ๋—„ ๋•Œ ๋ฐœ์ƒ โ‘ข
  • Frame(UI) ์ด๋ฒคํŠธ (์ž˜ ์‚ฌ์šฉํ•˜์ง€ X)
    • ํŠน์ • DOM ๋ฌธ์„œ์— ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ X → Frame ์ž์ฒด์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ
    • load ์ด๋ฒคํŠธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
    • Load : ๋ฌธ์„œ ๋ฐ ์ž์›๋“ค์ด ๋ชจ๋‘ ์›น ๋ธŒ๋ผ์šฐ์ €์— ํƒ‘์žฌ๋˜๋ฉด ์ด๋ฒคํŠธ ์ˆ˜ํ–‰
    • upload : ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋– ๋‚  ๋•Œ ์ด๋ฒคํŠธ ๋ฐœ์ƒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋– ๋‚˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆœ ์—†์Œ
  • ํผ(Form) ์ด๋ฒคํŠธ
    • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ€์žฅ ์•ˆ์ •์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ด๋ฒคํŠธ๋กœ ์ž์ฃผ ์‚ฌ์šฉ
    • form์ด ์ „์†ก๋  ๋•Œ submit ์ด๋ฒคํŠธ ๋ฐœ์ƒ / form ์ดˆ๊ธฐํ™” ์‹œ reset ์ด๋ฒคํŠธ ๋ฐœ์ƒ
    • submit, reset์€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ทจ์†Œ ๊ฐ€๋Šฅ
    • onsubmit : form ์ „์†ก ์‹œ ๋ฐœ์ƒ
    • onreset : from ๋ฆฌ์…‹ ์‹œ ๋ฐœ์ƒ
    • oninput : input or textarea ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ๋ฐœ์ƒ
    • onchange : select box, checkbox, radio button์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ ๋ฐœ์ƒ
    • onselect : input or textarea ์ž…๋ ฅ ๊ฐ’ ์ค‘ ์ผ๋ถ€ ์„ ํƒ ์‹œ(๋งˆ์šฐ์Šค) ๋ฐœ์ƒ

3๏ธโƒฃ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก

  • ์ธ๋ผ์ธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ
    • ์ด๋ฒคํŠธ ๊ฐ์ง€, ๋Œ€์‘ ์ž‘์—… ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ œ๊ณต
    • HTML ์š”์†Œ ๋‚ด๋ถ€์— ์ง์ ‘ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก ์‹œ → HTML ์ฝ”๋“œ๋ฅผ JS ์ฝ”๋“œ๊ฐ€ ์นจ๋ฒ”ํ•˜๋Š” ๋ฌธ์ œ ์กด์žฌ
    • but, ์ตœ๊ทผ CBD(Component Based Development) ๋ฐฉ์‹์„ ์“ฐ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ธ๋ผ์ธ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ → HTML, CSS, JS๋ฅผ ๊ตฌ์„ฑ ์š”์†Œ๋กœ๋งŒ ๋ณด๊ธฐ ๋•Œ๋ฌธ
    • ์—ฌ๋Ÿฌ ๊ฐœ ํ•จ์ˆ˜ ํ•œ ๋ฒˆ์— ํ˜ธ์ถœ ๊ฐ€๋Šฅ
  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹
    • JS์—์„œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• → HTML ์ฝ”๋“œ์™€ JS ์ฝ”๋“œ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ (ํ˜ผ์šฉ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ)
    • ์ด๋ฒคํŠธ ๋Œ€์ƒ ํŠน์ • DOM ์„ ํƒ ํ›„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก
    • ์š”์†Œ์— ํด๋ฆญ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋“ฑ๋กํ•œ ํ•จ์ˆ˜ ์‹คํ–‰
    • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ”„๋กœํผํ‹ฐ์—๋Š” ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋งŒ ๋ฐ”์ธ๋”ฉ ๊ฐ€๋Šฅ
  • addEventListener ๋ฉ”์†Œ๋“œ ๋ฐฉ์‹
    • ์ข€ ๋” ์„ธ๋ฐ€ํ•œ ์ด๋ฒคํŠธ ์ œ์–ด ๊ฐ€๋Šฅ
    • ์ „๋‹ฌ ์ธ์ž
      • ์ฒซ ๋ฒˆ์งธ : ์ด๋ฒคํŠธ ์ด๋ฆ„ (on์„ ์ œ๊ฑฐํ•œ ์ด๋ฒคํŠธ ์ด๋ฆ„)
      • ๋‘ ๋ฒˆ์งธ : ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ == ํ•จ์ˆ˜
      • ์„ธ ๋ฒˆ์งธ : ์บก์ณ๋ง ์—ฌ๋ถ€
    • DOM ์š”์†Œ ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ → ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์‹คํ–‰๋  ์ฝœ๋ฐฑ ํ•จ์ˆ˜(์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ) ์ง€์ •
    • ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ์บก์ณ๋ง๊ณผ ๋ฒ„๋ธ”๋ง ์ง€์›
๋ฐ˜์‘ํ˜•

'STUDY > Front End' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Web(Front) - Web Storage  (0) 2024.08.29
Web(Front) - JSON  (0) 2024.08.29
Web(Front) - Web Browser & Window ๊ฐ์ฒด  (0) 2024.08.28
Web(Front) - JavaScript ๊ฐ์ฒด  (0) 2024.08.28
[BOJ/Java] ์‡ ๋ง‰๋Œ€๊ธฐ (10799)  (0) 2024.08.28
Comments