
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
script 내용을 js 로 분리하려고 <script src="C:\src\HTML_CSS_JS\2024NYR\stamp.js"> </script> 를 삽입하고 stamp.js 에 알려주신 scirpt 내용을 붙여 넣기 했는데 main.html 에 붙여 넣었을 때는 잘 동작 하던 js 가 동작을 하지 않습니다. 어느 부분이 잘못 된 것 일지요?
작성한 코드 및 에러 메세지
// index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=divice-width, initial-scale=1.0">
<title>Document</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR&display=swap');
* {
font-family: 'Hahmlet', serif;
}
.bg {
background-image: url('https://s3.ap-northeast-2.amazonaws.com/materials.spartacodingclub.kr/bucketList/bg-grid.png');
background-position: cneter;
background-size: cover;
margin: auto;
width: 360px;
}
.title {
background-color: tomato;
border-radius: 10px;
color: white;
text-align: center;
padding: 8px 20px;
}
.bucket {
width: 160px;
height: 160px;
background-position: center;
background-size: cover;
}
.img1 {
background-image: url('https://s3.ap-northeast-2.amazonaws.com/materials.spartacodingclub.kr/bucketList/bucket-red.png');
}
.img2 {
background-image: url('https://s3.ap-northeast-2.amazonaws.com/materials.spartacodingclub.kr/bucketList/bucket-lightred.png');
}
</style>
<link rel="stylesheet" type="text/css" href="https://s3.ap-northeast-2.amazonaws.com/materials.spartacodingclub.kr/bucketList/sparta-bucketlist.css"/>
<script src="C:\src\HTML_CSS_JS\2024NYR\stamp.js">
</script>
</head>
<body class="bg center">
<h1 class="title">2024 신년계획</h1>
<h2>매일의 달성이 평생의 달성이다</h2>
<div class="flex-row wrap">
<div class="bucket img1-t4 center">한국에 부동산 구입하기</div>
<div class="bucket img2 center">완벽한 바디쉐이프 만들기</div>
<div class="bucket img1 center">APP으로 수익발생하기</div>
<div class="bucket img2-t5 center">월천넘억 실현하기</div>
<div class="bucket img1 center">네덜란드어 C1 획득하기</div>
<div class="bucket img2 center">중국어 HSK4 획득하기</div>
</div>
</body>
</html>
// stamp.js
// 페이지 로드 시 이전 상태 복원
document.addEventListener("DOMContentLoaded", (event) => {
const buckets = document.querySelectorAll(".bucket");
buckets.forEach((bucket, index) => {
// 로컬 스토리지에서 상태 읽기
const isDone = localStorage.getItem("bucket" + index) === "done";
if (isDone) {
bucket.classList.add("done");
}
});
});
// 버킷 리스트 클릭 이벤트
const buckets = document.querySelectorAll(".bucket");
buckets.forEach((bucket, index) => {
bucket.addEventListener("click", function () {
// 클래스 토글
bucket.classList.toggle("done");
// 로컬 스토리지에 상태 저장
if (bucket.classList.contains("done")) {
localStorage.setItem("bucket" + index, "done");
} else {
localStorage.setItem("bucket" + index, "");
}
});
});
