@Alexey1307

Почему click срабатывает только один раз?

Есть календарь, хочу чтоб по нажатию на кнопки "назад', и 'вперед' менялся месяц.
Сейчас кнопки меняют месяц, но только 1 раз, то есть с Июня на Июль поменяет, а на Август уже нет!
Плюс если нажать 'назад' то вместо возврата в июнь, календарь отрисует Май!
Вот код функции переключения стрелок:
function switchMounth(){
	let prev = document.querySelector('.prev');
  let next = document.querySelector('.next');
	
	prev.addEventListener('click', ()=>{
    for(let i =0; i<=monthsName.length; i++){
      if(i == curentMonth){
        let a = i-1;
            for(let k of monthsName){
              if(k == months.innerHTML){
                createCalendar(calendar, curentYear, realMonth-1);
                months.innerHTML = monthsName[a];
              }
            }      
          }  
      }  
	})

    next.addEventListener('click', ()=>{
    for(let i =0; i<=monthsName.length; i++){
      if(i == curentMonth){
        let a = i+1;
            for(let k of monthsName){
              if(k == months.innerHTML){
                createCalendar(calendar, curentYear, realMonth+1);
                months.innerHTML = monthsName[a];
              }
            }      
         }  
      }  
  })
}

Календарь здесь
  • Вопрос задан
  • 200 просмотров
Решения вопроса 2
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
У вас, как минимум, после клика у currentMonth не обновляется значение
Ответ написан
black1277
@black1277
Вольный стрелок
У вас две переменные currentMonth и realMonth не меняются после клика, а должны увеличиваться или уменьшаться. Посмотрите лог перед каждым вызовом ф-и, чтобы понять
console.log('prev', calendar, curentYear, realMonth-1);
createCalendar(calendar, curentYear, realMonth-1);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы