Я думал, что выложу свое решение этой проблемы. Спасибо @ADyson за указание в правильном направлении.
так что, прежде всего, вам нужен переключатель на странице, который, если он включен, изменяет поведение по умолчанию при нажатии на полный календарь.
<label>
<input type="checkbox" name="bulkSelect" id="bulkSelect" data-toggle="toggle">
Bulk Select
</label>
Далее, перед полным вызовом календаря добавьте следующие строки кода в теги сценария. Пустой массив и две функции. Один для добавления в массив и один для удаления из массива.
var myEvents = [];
function addToEventArray(element)
{
myEvents.push(element);
}
function removeAFromArray(arr)
{
var what, a = arguments, L = a.length, ax;
while (L > 1 && arr.length)
{
what = a[--L];
while ((ax= arr.indexOf(what)) !== -1)
{
arr.splice(ax, 1);
}
}
return arr;
}
Теперь для события нажмите в полном календаре. Щелчок по событию просто проверяет, установлен ли массовый выбор на флажок. если это так, то каждое новое событие, которое вы щелкнете, будет добавлено в массив выбранных событий. Он также помещает красную рамку вокруг выбранных событий. Если вы щелкнете событие во второй раз, оно будет удалено из массива, а граница удалена.
Просто обратите внимание, что я использую extendedProps.eventID, которое является настраиваемым полем, позволяющим мне назначать каждому новому событию свой уникальный идентификатор.
eventClick: function(info) {
if($('#bulkSelect').prop('checked') == true)
{
if(jQuery.inArray(info.event.extendedProps.eventID, myEvents) != -1)
{
removeAFromArray(myEvents, info.event.extendedProps.eventID);
info.el.style.borderColor = 'transparent';
}
else
{
addToEventArray(info.event.extendedProps.eventID);
info.el.style.borderColor = 'red';
}
}
else
{
console.log('clicked single event');
}
}
Надеюсь, это пригодится кому-то еще.