Cristian Hernandez Ответов: 1

JS календарный месяц и Год выпуска


Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на дату, месяц не появляется в календаре, он возвращается к месяцу по умолчанию. Пример: я нажал на 21 сентября, и когда действие будет выполнено, календарь обновится до июля(месяц по умолчанию).

Что я уже пробовал:

Пример CodePen jsCalendar

1 Ответов

Рейтинг:
1

Richard Deeming

Когда вы нажимаете на кнопку <a> в течение определенного дня вы выполняете dayClicked функция обновления календаря. Но вы не препятствуете действию по умолчанию, которое заключается в переходе к href, который перезагружает страницу.

Вы могли бы удалить href, что помешало бы навигации. Но это также повлияло бы на стиль ссылки:

$("#days").append("<td class='day_active'><a onclick='dayClicked(" + month + "," + year + ");'>" + i + "</a></td>");

Или вы могли бы добавить return false; после вызова dayClicked функция:
$("#days").append("<td class='day_active'><a href='' onclick='dayClicked(" + month + "," + year + ");return false;'>" + i + "</a></td>");

Или же вы можете использовать делегированные события jQuery:
function days(month, year) {
    ...
        $("#days").append("<td class='day_active'><a href='' data-month='" + month + "' data-year='" + year + "'>" + i + "</a></td>");
    }
};

$("#days").on("click", ".day_active a", function(evt){
    evt.preventDefault();
    
    var month = this.getAttribute("data-month");
    var year = this.getAttribute("data-year");
    days(month, year);
});