我正在改变自己的责任。我在我的项目中使用FullCalendar。我也想使用我在drop中的事件中使用的回调。简而言之,我想将从列表中拖动的事件添加到日历中,如何在drop中执行此操作? 提前致谢
的Javascript;
$('#m_calendar').fullCalendar({
drop: function (date, jsEvent, ui, resourceId) {
jsEvent.originalEvent.preventDefault();
var title = jsEvent.target.dataset.title;
var start = jsEvent.target.dataset.start;
var end = jsEvent.target.dataset.end;
var id = jsEvent.target.dataset.id;
var newEvent = new Object();
newEvent = {
title: title,
id: id,
start: start,
end: end,
objectID: 0
};
eventsAdded.push(newEvent);
},
events: function (start, end, timezone, callback) {
$.ajax({
url: '/Schedule/GetCalendarEvents',
dataType: 'xml',
data: {
start: start.unix(),
end: end.unix()
},
success: function (doc) {
var events = [];
$(doc).find('event').each(function () {
events.push({
id: $(this).attr('id'),
title: $(this).attr('title'),
start: $(this).attr('start'),
end: $(this).attr('end')
});
});
callback(events);
},
error: function () {
alert('there was an error while fetching events!');
},
});
},
});
答案 0 :(得分:0)
你有两个选择,
1)如果您将事件数据包含在拖动到日历中的draggable
属性中,则当您删除该事件时,该事件将自动添加到日历中。有关如何指定数据的详细信息,请参阅https://fullcalendar.io/docs/eventReceive。另请参阅https://fullcalendar.io/docs/external-dragging-demo处的外部拖动演示以获取工作示例 - 您可以查看链接的CodePen中的源代码,了解它是如何完成的。
2)要修改当前代码,只需调用
即可$("#m_calendar").fullCalendar("renderEvent", newEvent, true);
在“drop”回调结束时。
这会将新事件添加到日历显示中。当然,如果您需要将它添加到数据库中,您还需要同时对服务器进行适当的调用。
有关文档,请参阅https://fullcalendar.io/docs/renderEvent。
P.S。在您编辑它之前,这曾经是一个完全不同的问题(请参阅问题的编辑历史记录)。将来请不要将问题编辑为新问题......有人可能仍想回答以前的版本。提出一个全新的问题(如果您不再需要,请删除旧问题)。否则,之前的评论或答案(例如我在此处发布的评论,现已删除)将毫无意义。感谢。