2

出于某种原因,我无法在 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');
}

但是,无论如何,添加到数据库的新事件只有在我刷新屏幕时才会显示。谁能建议我可能做错了什么?

4

1 回答 1

4

尝试:

$('#calendar').fullCalendar("refetchEvents");

Update 2013-01-31.

That works because you are forcing FC to reread the event source and render the calendar again.

However, if that is sometimes a brute force solution, another way to achieve the same (when possible) is to do this, say in dayClick when creating a new event:

  • update event-DB using $.ajax
  • create the corresponding new event: yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);
于 2012-09-07T23:44:34.340 回答