JS파일로 나누기
html파일과 js파일을 분리
목적
코드의 가독성을 위해 html과 js파일을 분리
여러 html파일에서 같은 javascript 코드가 쓰일때 더 편리하게 사용가능
수정시 여러곳에서 사용하고 있더라도 js파일 하나만 수정하면 전부 수정됨
결국 코드 재사용성과 코드 가독성을 위함
<!-- index.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
<h1><a href="#">홈으로</a></h1>
<input type="button" value="불 끄기" onclick = "lightToggleHandler(this)" />
<ul>
<li><a href="#">1. 기획</a></li>
<li><a href="#">2. 디자인</a></li>
<li><a href="#">3. 퍼블리싱</a></li>
<li><a href="#">4. 프론트</a></li>
<li><a href="#">5. 백</a></li>
</ul>
<p>
웹사이트를 구축은 크게 기획, 디자인, 퍼블리싱, 개발이라는 4단계를 거쳐서 진행되고 있으며 전체 프로젝트를 총괄하는 PM(Project Manager)와 각 단계의 PL(Project Leader)의 원활한 커뮤니케이션을 통해 성공적인 프로젝트를 완료하는데 목적을 둔다. 여기서 웹디자인 과정은 웹사이트의 컨셉(Concept)에 맞게 구체적인 시각화와 사용성을 높이는데 중요한 역할을 하고 있으며 보다 전문적인 아트디렉터가 투입되기도 한다.
</p>
<!-- 분리한 스크립트 파일 불러오 -->
<script src="./colors.js">
</body>
</html>
// colors.js
var body = {
target: document.querySelector('body'),
setBackgroundColor: function(color) {
this.target.style.backgroundColor = color;
},
setColor: function(color) {
this.target.style.color = color;
},
} // body 관련 변수와 함수를 묶어서 객체로 만듬
var alist = {
target: document.querySelectorAll('a'),
setColor: function(color) {
for(var i = 0; i < this.target.length; i++) {
this.target[i].style.color = color;
}
},
} // alist 관련 변수와 함수를 묶어서 객체로 만듬
function lightToggleHandler(self) {
if(self.value === '불 끄기') {
body.setBackgroundColor('black');
body.setColor('white');
alist.setColor('powderblue');
self.value = '불 켜기';
} else {
body.setBackgroundColor('white');
body.setColor('black');
alist.setColor('blue');
self.value = '불 끄기';
}
}
Last updated
Was this helpful?