出于某种原因,我无法在POST后重新呈现日历。一切顺利到那一点:
$('#calendar').fullCalendar({
...
select: function (startDate, endDate) {
$.ajax({
url: 'data.php',
type: "POST",
data: {
'start':startDate,
'end':endDate,
}
success: $('#calendar').fullCalendar('rerenderEvents')
}
...
});
数据发布成功,我的php脚本将新事件添加到数据库就好了。唯一的问题是日历没有被数据库中的新数据重新呈现。
如果我刷新页面(Firefox中的F5),则会呈现新事件。显然,我需要在事件提交到数据库后立即显示该事件。我不能指望我的用户刷新页面。
我已经对这个成功案例进行了许多排列,例如:
function () {
$('#calendar').fullCalendar('rerenderEvents');
}
和(我的php返回'成功'),
function (data) {
if (data === 'success') $('#calendar').fullCalendar('renderEvents');
}
但是,无论如何,添加到数据库的新事件仅在我刷新屏幕时显示。任何人都可以提出我可能做错的建议吗?
答案 0 :(得分:4)
尝试:
$('#calendar').fullCalendar("refetchEvents");
更新2013-01-31。
这是有效的,因为你强迫FC重新读取事件源并再次渲染日历。
但是,如果有时候这是一个强力解决方案,另一种实现相同的方法(如果可能的话)就是这样做,比如在dayClick
创建一个新事件时:
$.ajax
yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);