코드 조각에 문제가있어 견과류가되었습니다. 나는 이것을 몇 시간 동안 붙들어 왔으며, 최악의 부분은 그것이 정말로 간단하다고 가정하고 있다는 것입니다. 나는 그것을 이해할 수 없다.자바 스크립트에서 if 문 내의 변수 값을 변경하십시오.
Javascript/jQuery를 사용하여 간단한 이벤트 캘린더를 만들려고합니다. 이제
var currentMonth = 1;
if (currentMonth == 1) {
$("#prev-month").click(function() {
currentMonth = 12;
});
$("#next-month").click(function() {
currentMonth = 2;
});
}
if (currentMonth == 2) {
$("#prev-month").click(function() {
currentMonth = 1;
});
$("#next-month").click(function() {
currentMonth = 3;
});
}
if (currentMonth == 3) {
$("#prev-month").click(function() {
currentMonth = 2;
});
$("#next-month").click(function() {
currentMonth = 4;
});
}
if (currentMonth == 4) {
$("#prev-month").click(function() {
currentMonth = 3;
});
$("#next-month").click(function() {
currentMonth = 5;
});
}
이 때마다 내가 ID "다음 달"로 버튼을 클릭 내가 ID를 가진 버튼을 클릭하면, 항상 2입니다 "이전 개월이 내가 가진 그 단순화 된 코드입니다 ", 항상 12입니다. 결코 바뀌지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
네, 감사합니다. 이제는 '+ 10'이 맘에 들지 않지만, 이제는 고정되어 있습니다. 10은 아무데도 등장하지 않는 것 같은 "매직 넘버"입니다. 아마도 Neysor의 대답처럼 코드를 더 명확하게 작성하는 것이 가장 좋습니다. –
개인적으로, (함축 된) 전역 범위 대신 변수에 대해 하나의 핸들러와 클로저 범위를 사용합니다. 외부에서 사용해야 할 경우'$ (this) .parent(). data ('data-current-month', currentMonth)'. –
매직 넘버 대신'(currentMonth - 1) % 12 || 12;' –