Профиль пользователя заблокирован сроком с 22 января 2020 г. и навсегда по причине: нарушение п. 6.6 правил сайта
  • Ошибка в коде при переключении месяца в календаре?

    0xD34F
    @0xD34F Куратор тега JavaScript
    В консоле выдает Uncaught TypeError: next is not a function

    Вы обработчики подключили инлайново, а по умолчанию jsfiddle оборачивает код в window.onload - вот они и отсутствуют в глобальной области видимости. Либо назначайте обработчики с помощью addEventListener; либо в верхней части окна с js кодом есть выпадающее меню, открываете его, находите пункт "load type", выставляете значение "No wrap - bottom of < body >".

    Как выделить при помощи класса текущее число, не выходит
    добавляю...

    Это безумие - currDay является датой, а вы пытаетесь работать с ней как с DOM нодой, classList.add, бред какой-то. Ну и само условие неправильное - год и месяц вы всегда при проверке используете одни и те же, где тут currDay? Должен быть. А проверка числа - ещё одно безумие, вы его сравниваете с объектом даты.

    Кроме того, есть ещё косяк с генерацией элементов календаря, у вас там условие currDay.getMonth() <= month. Представьте, что следующий месяц - январь, год кончается. Что будет с вашим условием? Правильно, оно останется истинным. Навсегда. Лучше сделать так: проверяете равенство, без "меньше", а while заменяете на do-while - тогда числа предыдущего месяца, формально не подходящие под условие, всё равно будут обработаны, так как тело цикла выполняется до проверки условия.

    исправлено
    Ответ написан
    2 комментария