我正在使用带有Scheduler插件的FullCalendar,我正在尝试为刚刚拖动或调整大小的事件获取新的资源ID。如果我在console.log中event
或eventResize
函数的eventDragStop
参数,我总是得到事件的初始资源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);
}
});
答案 0 :(得分:1)
" eventDragStop"的文档(https://fullcalendar.io/docs/eventDragStop)明确说明
在事件信息被修改之前触发
这就解释了为什么从那里登录时资源ID没有改变。
您想要处理的回调是" eventDrop" (https://fullcalendar.io/docs/eventDrop),当拖动停止并且事件数据已更新以反映其新位置时触发。
例如:
eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) {
console.log("Resource: " + event.resourceId);
}
应该能为您提供所需的信息。
显然,如果您只调整无法更改其所属资源的事件,那么这种情况与您的问题无关。