Нажмите на название дня и выберите все дни того же дня недели в Fullcalendar - PullRequest
0 голосов
/ 07 мая 2018

my current calendar

У меня есть этот календарь, показанный на картинке, и я хочу выбрать его, нажав на название дня недели. Моя идея состоит в том, чтобы нажать, скажем, понедельник, и календарь выбирает все понедельники в текущем представлении. Я посмотрел везде в их документации и не смог найти ничего связанного.

Можно ли это сделать?

Edit:

function enumerateDaysBetweenDates(startDate, endDate) {
    var now = startDate.clone(), dates = [];

    while (now.isSameOrBefore(endDate)) {
      dates.push(now.format('M/D/YYYY'));
      now.add(1, 'days');
    }
    return dates;
  };

  var $calendar = $('#calendar').fullCalendar({
    header: {
      left: 'prev,next',
      center: 'title',
      right: ''
    },
    selectable: true,
    select: function (startDate, endDate) {
      var html = '<input class="form-control" type="text" disabled="disabled" value="' + startDate.format('DD/MM/YYYY') + ' até ' + endDate.format('DD/MM/YYYY') +'" />';
      console.log(enumerateDaysBetweenDates(startDate, endDate.add(-1, 'days')));
      $('#selected-dateranges').append(html);
    } 
  });

Я создал ручку, чтобы ее было легко редактировать. ссылка

1 Ответ

0 голосов
/ 07 мая 2018

Базовый код довольно прост.

Элементы календарного дня имеют классы fc-mon, fc-tue и т. Д., Основанные на названиях дней. У них также есть базовый класс fc-day. Таким образом, довольно просто получить текст дня, в котором щелкнули заголовок, перенести в класс имени дня и переключить выбранный класс в соответствующие дни

Попробуйте это

 $('#calendar').on('click', '.fc-day-header', function(e) {
     let day = $(this).text().toLowerCase();
     $('.fc-day').removeClass('selected')
                 .filter('.fc-' + day)
                 .addClass('selected')
 });

DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...