创建事件后,它将保存到数据库并等待响应作为唯一ID(itemId)。
select: function(start, end, jsEvent) {
var title = projectName;
var eventData;
if (title) {
eventData = {
id: getId(),
itemId: 0,
projectId: projectId,
color: projectColor,
title: title,
start: start,
end: end,
allDay: 0
};
$('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
//******** create event time
$.ajax({
url: 'index.php?call=saveItem',
data: {title: eventData.title, start: start.format(), end: end.format(), pid: eventData.projectId, allDay: eventData.allDay},
type: "POST",
success: function(data) {
console.log('Added Successfully: '+data);
eventData.itemId = parseInt(data);
},
fail: function( jqXHR, textStatus, errorThrown) {
console.log('error: '+jqXHR+":"+textStatus+":"+errorThrown);
}
});
}
我将itemId返回'成功'但是我现在如何将事件中的itemId更新为我从服务器返回的某个号码而不是' 0'?
我可以在响应成功后渲染事件,但由于ajax是异步的,所以需要片刻直到事件渲染为止
success: function(data) {
console.log('Added Successfully: '+data);
eventData.itemId = parseInt(data);
$('#calendar').fullCalendar('renderEvent', eventData, true);
}
是否有原始问题的解决方案。感谢。
答案 0 :(得分:0)
一旦ajax响应成功,我就召回了事件加载函数。
success: function (response) {
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('refetchEvents');
},