h1요소의 색상을 클릭할 때마다 변경
핵심 개념
- 이벤트 리스너 제거 → 필요 없는 리스너 제거 후
handleTitleClick함수에 집중 - 색상 변경 로직
h1.style.color값을 확인하여 변경if-else문을 사용하여 색상 변경
- 콘솔 로그 활용
console.log(h1.style.color)로 색상 확인
- 리팩토링
- 현재 색상을
const currentColor에 저장 let newColor변수를 사용하여 변경될 색상 할당h1.style.color = newColor로 최종 적용
- 현재 색상을
- JS에서 CSS 조작에 대한 고민
- JavaScript에서 직접 스타일을 변경하는 것은 권장되지 않음
- CSS 파일을 활용하는 방향으로 개선 예정
코드 예시
기본 코드
const h1 = document.querySelector("h1");
function handleTitleClick() {
if (h1.style.color === "blue") {
h1.style.color = "tomato";
} else {
h1.style.color = "blue";
}
}
h1.addEventListener("click", handleTitleClick);
리팩토링 코드
const h1 = document.querySelector("h1");
function handleTitleClick() {
const currentColor = h1.style.color;
let newColor = currentColor === "blue" ? "tomato" : "blue";
h1.style.color = newColor;
}
h1.addEventListener("click", handleTitleClick);
개선 방향
- JS에서 CSS 직접 변경 대신 클래스 활용
- 이벤트 흐름 정리
- 요소 찾기 →
document.querySelector("h1") - 이벤트 리스너 등록 →
addEventListener("click", 함수명) - 이벤트 발생 시 스타일 변경 →
style.color변경
- 요소 찾기 →