코드에 class 를 때고 붙히는 식으로 버튼을 구성
for 범위에서 i를 선언할때 var,let의 차이
변수의 범위차이이다.
일단 for 을 실행하면
for (let i = 0; i <3; i++) {
$('.tab-button').eq(i).on('click',function(){
$('.tab-button').removeClass("orange")
$('.tab-button').eq(i).addClass('orange')
$('.tab-content').removeClass("show")
$('.tab-content').eq(i).addClass('show')
});
}
다음 코드를 보면 for문 안의 이벤트리스너를 만난다.
하지만 바로 실행하지 않고 일단 for문을 반복함
이렇게 for을 완료후 내부 코드를 실행하는데 이때 var 선언시 i 는 이미 3이 되어있음 그래서 변수 i에 3이 할당되어 오류가 나는것임
=> for문 바깥에 생성
반면에 let 으로 선언시 for 내부에 각각 변수가 선언되어 각 코드에 0,1,2가 선언되어 올바르게 작동함
'JS' 카테고리의 다른 글
| Array 와 Object 자료형 (0) | 2022.10.27 |
|---|---|
| 이벤트 버블링과 이벤트관련 함수들, 응용과 dataset (0) | 2022.10.25 |
| 스크롤 이벤트로 만드는 재밌는 기능들 (0) | 2022.10.08 |
| 함수의 return 문법 & 소수점 다루기 (0) | 2022.10.04 |
| 코드 3줄로 캐러셀 (이미지 슬라이드) 만들기2 (0) | 2022.10.04 |