在 FullCalendar 中拖动或调整事件大小后获取新的资源 ID
Get the new resource id after an event has been dragged or resized in FullCalendar
我将 FullCalendar 与 Scheduler 插件一起使用,我正在尝试为刚刚被拖动或调整大小的事件获取新的资源 ID。如果我 console.log eventResize
或 eventDragStop
函数的 event
参数,我总是得到事件的初始资源 ID。
知道如何实现吗?
下面是我目前的代码:
$('#calendar').fullCalendar({
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
locale: 'ro',
header: {
left: '',
center: 'title',
right: ''
},
defaultView: 'agendaDay',
views: {
agenda: {
titleFormat: 'dddd, D MMMM'
}
},
minTime: '07:00:00',
maxTime: '24:00:00',
slotDuration: '00:30:00',
slotLabelFormat: 'HH(:mm)',
allDaySlot: false,
resources: {
url: '/some/endpoint/here',
type: 'POST',
data: {
type: $('#type').val()
}
},
events: '/some/other/endpoint/here',
eventOverlap: false,
eventConstraint: {
start: '07:00',
end: '24:00'
},
dayClick: function(date, jsEvent, view, resourceObj) {
var check = moment(date).format('YYYY-MM-DD');
var today = moment(new Date()).format('YYYY-MM-DD');
if (check >= today) {
// Some logic here
}
},
eventClick: function(calEvent, jsEvent, view) {
var check = moment(calEvent.start).format('YYYY-MM-DD');
var today = moment(new Date()).format('YYYY-MM-DD');
if (check >= today) {
// Some logic here
}
},
eventResize: function(event, delta, revertFunc, jsEvent, ui, view) {
console.log('Resize', event, jsEvent);
},
eventDragStop: function(event, jsEvent, ui, view) {
console.log('Drag', event);
}
});
"eventDragStop" (https://fullcalendar.io/docs/eventDragStop) 的文档明确指出
It is triggered before the event’s information has been modified
这就解释了为什么当您从那里记录时资源 ID 没有改变。
您想要处理的回调是 "eventDrop" (https://fullcalendar.io/docs/eventDrop),它在拖动停止并且事件数据已更新以反映其新位置时触发。
例如:
eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) {
console.log("Resource: " + event.resourceId);
}
应该可以为您提供所需的信息。
显然,如果您只是调整事件的大小而不能更改它所属的资源,那么这种情况与您的问题无关。
我将 FullCalendar 与 Scheduler 插件一起使用,我正在尝试为刚刚被拖动或调整大小的事件获取新的资源 ID。如果我 console.log eventResize
或 eventDragStop
函数的 event
参数,我总是得到事件的初始资源 ID。
知道如何实现吗?
下面是我目前的代码:
$('#calendar').fullCalendar({
schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
locale: 'ro',
header: {
left: '',
center: 'title',
right: ''
},
defaultView: 'agendaDay',
views: {
agenda: {
titleFormat: 'dddd, D MMMM'
}
},
minTime: '07:00:00',
maxTime: '24:00:00',
slotDuration: '00:30:00',
slotLabelFormat: 'HH(:mm)',
allDaySlot: false,
resources: {
url: '/some/endpoint/here',
type: 'POST',
data: {
type: $('#type').val()
}
},
events: '/some/other/endpoint/here',
eventOverlap: false,
eventConstraint: {
start: '07:00',
end: '24:00'
},
dayClick: function(date, jsEvent, view, resourceObj) {
var check = moment(date).format('YYYY-MM-DD');
var today = moment(new Date()).format('YYYY-MM-DD');
if (check >= today) {
// Some logic here
}
},
eventClick: function(calEvent, jsEvent, view) {
var check = moment(calEvent.start).format('YYYY-MM-DD');
var today = moment(new Date()).format('YYYY-MM-DD');
if (check >= today) {
// Some logic here
}
},
eventResize: function(event, delta, revertFunc, jsEvent, ui, view) {
console.log('Resize', event, jsEvent);
},
eventDragStop: function(event, jsEvent, ui, view) {
console.log('Drag', event);
}
});
"eventDragStop" (https://fullcalendar.io/docs/eventDragStop) 的文档明确指出
It is triggered before the event’s information has been modified
这就解释了为什么当您从那里记录时资源 ID 没有改变。
您想要处理的回调是 "eventDrop" (https://fullcalendar.io/docs/eventDrop),它在拖动停止并且事件数据已更新以反映其新位置时触发。
例如:
eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) {
console.log("Resource: " + event.resourceId);
}
应该可以为您提供所需的信息。
显然,如果您只是调整事件的大小而不能更改它所属的资源,那么这种情况与您的问题无关。