Jquery 完整日历-事件重新设置,但不重新设置

Jquery 完整日历-事件重新设置,但不重新设置,jquery,fullcalendar,Jquery,Fullcalendar,我一直在玩完整的日历,让它从数据库中引入事件。当它最初呈现它们时,它会检查它们是否存储为全天事件,并根据结果将allDay设置为true或false 这非常有效,但是当一个新事件被放到日历上时,它应该重新读取所有事件,然后重新命名它们,这样它们就不会全部默认为全天事件。但是,尽管正在调用refetch,但它后面的行上的RERERENDER不会被调用。但是,如果我在浏览器控制台中调用rerender行,它会完全按照它们应该是什么样子重新启动它们 所以我想我的问题是,为什么fullcalendar会

我一直在玩完整的日历,让它从数据库中引入事件。当它最初呈现它们时,它会检查它们是否存储为全天事件,并根据结果将allDay设置为true或false

这非常有效,但是当一个新事件被放到日历上时,它应该重新读取所有事件,然后重新命名它们,这样它们就不会全部默认为全天事件。但是,尽管正在调用refetch,但它后面的行上的RERERENDER不会被调用。但是,如果我在浏览器控制台中调用rerender行,它会完全按照它们应该是什么样子重新启动它们

所以我想我的问题是,为什么fullcalendar会重新绘制事件,而忽略重播?有解决办法吗

非常感谢。我的代码是:

事件的初始呈现:

editable: true,
events: "json-events-log.php",
eventRender: function(event, element) {
            if (event.event_type_id==2) {
                element.addClass("red-event");
            } else if (event.event_type_id==3) {
                element.addClass("blue-event");
            } else {
                element.addClass("green-event");
            }

            if(event.all_day == 0){
                event.allDay = false;
            } else {
                event.allDay = true;
            }

        } 
以及通过AJAX成功发布事件后调用的success函数:

$.ajax({
              type: 'POST',
              url: "new_event.php",
              data: ajaxData,
              success: function(data) {
                  if (data.moved==true) {
                    alert('success');

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


                    $("#updatingCal").addClass("hiddenUpdate");
                    if ($('#drop-remove').is(':checked')) {

                        $(this).remove();
                    }



                  } else {
                        $("#updatingCal").addClass("hiddenUpdate");
                        console.log('fail');
                    }

              },
              dataType: "json"
            });

您需要将日历的jquery选择器缓存在变量-
var calendar=$(“#calendar”).fullCalendar()中。当您渲染日历时,需要添加以下代码:

if(calendar){
    calendar.fullCalendar('destroy');
}
calendar = $("#calendar").fullCalendar({
    //your options
});

问题是您正在修改eventRender回调中的事件数据。您应该改为修改eventDataTransform回调中的数据