JQuery FullCalendar在从ajax成功调用rerenderEvents时遇到问题



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

然而,不管怎样,添加到数据库中的新事件只有在我刷新屏幕时才会显示。有人能告诉我可能做错了什么吗?

尝试:

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

更新2013-01-31。

这是因为您正在强制FC重新读取事件源并再次呈现日历。

然而,如果这有时是一种暴力解决方案,那么(在可能的情况下)实现同样效果的另一种方法就是这样做,比如在创建新事件时使用dayClick

  • 使用$.ajax更新事件数据库
  • 创建相应的新事件:yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);

相关内容

  • 没有找到相关文章

最新更新