Функция fullCalendar eventResize никогда не срабатывает - PullRequest
2 голосов
/ 08 января 2020

Извините, если это дубликат. Я много искал, прежде чем опубликовать это, но не смог найти ответ.

Я использую fullCalendar. Он показывает красивый календарь, и с опцией «editable: true» я могу перетащить событие и переместить его на любую дату на странице. Но проблема в том, что функция «eventResize» никогда не вызывается. Мой код, как показано ниже

function calendar() {
    $('#calendar').fullCalendar({
        locale: 'nl',
        header: {
            left:'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        timeFormat: 'H:mm',
        allDaySlot: false,
        eventSources: [
            {
                url: '/mypath/get_events',
                type: 'post',
            }
        ],
        eventColor: '#cccccc',
        editable: true,
        eventResize: function(event,dayDelta,minuteDelta,revertFunc) {
            alert("let's change the dates");
        },
        slotEventOverlap: true,
        height: 'auto',
        droppable: false
    });
}

Конечно, сверху у меня есть следующее

<link rel="stylesheet" href="/mypath/fullcalendar/fullcalendar.min.css">
<link rel="stylesheet" href="/mypath/fullcalendar/fullcalendar.print.css" media="print">
<script type="text/javascript" src="/mypath/fullcalendar/jquery.min.js"></script>
<script type="text/javascript" src="/mypath/fullcalendar/moment.min.js"></script>
<script type="text/javascript" src="/mypath/fullcalendar/fullcalendar.min.js"></script>

Я использую fullCalendar версии 2.2.5, если это имеет значение.

Ответы [ 2 ]

1 голос
/ 08 января 2020

Я думаю, вы ищете событие eventDrop. eventResize срабатывает при изменении размера события в дневном представлении, например, когда вы перетаскиваете нижнюю часть события, чтобы закончить через час.

eventDrop: function(eventDropInfo) {
  console.log(eventDropInfo)
}

Документы для eventDrop

0 голосов
/ 08 января 2020

Вы смотрите на неправильный обратный вызов.

Согласно документам , eventResize происходит только тогда, когда продолжительность события изменилась - т.е. событие теперь имеет другую длину, потому что вы изменил либо дату начала или окончания, но не оба. (В пользовательском интерфейсе это делается путем нажатия и перетаскивания верхней или нижней границы события, чтобы его размер изменился.)

Если вы перемещаете событие на другую дату / время, не меняя его длина / продолжительность, тогда вы не изменяете размер, вы перетаскиваете его. Вот почему событие не вызывается.

Вместо этого вам нужно использовать обратный вызов eventDrop . Это срабатывает, когда перетаскивание останавливается и событие перемещается в другой день / время. например,

eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) { 
  alert("event was moved");
}
...