JS Events

Heewon๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ปยท2024๋…„ 4์›” 24์ผ

๐Ÿ’กdocument.querySelector(""); ๋ฅผ ํ†ตํ•ด์„œ html์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•˜๊ณ , ๊ทธ ์š”์†Œ์˜ ๋‚ด๋ถ€๋ฅผ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด, console.log() ๋Œ€์‹  console.dir()์„ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค.(๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์šฉ์ดํ•จ)

<div class="hello">
      <h1>Grab me!</h1>
      <h1>Grab me123!</h1>
      <h1>Grab me345!</h1>
      <h1>Grab me567!</h1>
 </div>
 
 ์œ„ ๊ฐ™์€ htmlํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ ,
 JS์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด elements์˜ property๋ฅผ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด,
 
 const title = document.querySelector(".hello:first-child h1");
 console.dir(title);
 
 ์œ„์™€ ๊ฐ™์ด ํŠน์ • element๋ฅผ ์ง€์ •ํ•œ๋‹ค์Œ dir์„ ์‚ฌ์šฉํ•ด ํ˜ธ์ถœํ•œ๋‹ค.

๐Ÿ’กconsole.dir()์„ ์‚ฌ์šฉํ•ด์„œ objectํ™”๋œ ์š”์†Œ์˜ elements๋ฅผ ๋ณด๊ฒŒ๋˜๋ฉด, onxxxx๋ผ๊ณ  ์ ํ˜€์žˆ๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ชจ๋‘ events์— ํ•ด๋‹น๋œ๋‹ค.

๐Ÿ’กobject์•ˆ์— object๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ์‹ ๊ธฐํ•œ๊ฑด style๋„ ์š”์†Œ์˜ object์†์— ์žˆ๋Š” object์ด๋‹ค. style object์˜ elements๋ฅผ ๋ณด๋ฉด JS๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์ฆ‰ JS๋กœ CSS style์„ ์กฐ์ž‘๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค.

title.style.color = "blue";
//ํŒŒ๋ž‘์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฒŒํ•˜๋Š” JS ๋ฏธ์นœ๋†ˆ์ด๋„ค?

๐Ÿ’ก events๋Š” ๋ง๊ทธ๋Œ€๋กœ ํšจ๊ณผ๋‹ค. ๋ˆ„๋ฅด๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์„ ํ•œ๋‹ค๊ฑฐ๋‚˜, ์ €์žฅํ•œ๋‹ค๋˜์ง€, ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ๋‘”๋‹ค๊ฑฐ๋‚˜...

function handleTitleClick() {
  title.style.color = "blue";
}

function handleMouseEnter() {
  title.innerHTML = "mouse is here!";
}

function handleMouseLeave() {
  title.innerHTML = "mouse is gone!";
}

title.addEventListener("click", handleTitleClick);
// addEventListener์ด "click" ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ํ•จ์ˆ˜ handleTitleClicked๊ฐ€ ์‹คํ–‰์‹œ์ผœ์ง€๋„๋ก ๋งŒ๋“ฌ!
์œ„์˜ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.
title.onclick = handleTitleClick;

title.addEventListener("mouseenter", handleMouseEnter);
title.onmouseenter = handleMouseEnter;

title.addEventListener("mouseleave", handleMouseLeave);

addEventListener ์„ ๋” ์„ ํ˜ธํ•˜๋Š” ์ด์œ ๋Š” .removeEventListener ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•ด์ง€๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

function handleWindowSize() {
  document.body.style.backgroundColor = "tomato";
}

function handleWindowCopy() {
  alert("copier!!!!!!!!!!!!!!");
}
function handleWindowOffLine() {
  alert("SOS no wifi!");
}

function handleWindowOnLine() {
  alert("ALL GOOOOOOOODD!!");
}
window.addEventListener("resize", handleWindowSize);
//์œˆ๋„์šฐ ์ฐฝ ํฌ๊ธฐ ์ˆ˜์ •๋ ๋•Œ!
window.addEventListener("copy", handleWindowCopy);
//๋ˆ„๊ตฐ๊ฐ€๊ฐ€ control+c ์‹œ๋„ํ–ˆ์„๋•Œ!
window.addEventListener("offline", handleWindowOffLine);
//์™€์ดํŒŒ์ด ํ„ฐ์กŒ์„๋•Œ!
window.addEventListener("online", handleWindowOnLine);
//์™€์ดํŒŒ์ด ์—ฐ๊ฒฐ๋˜์—ˆ์„๋•Œ!

๊ทธ์™ธ ์œˆ๋„์šฐ์— ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.
profile
Interested in coding, meat lover, in love with dogs , enjoying everything happens in my life.

0๊ฐœ์˜ ๋Œ“๊ธ€