渲染后更改Fullcalendar事件参数

时间:2015-07-12 17:37:49

标签: jquery fullcalendar

创建事件后,它将保存到数据库并等待响应作为唯一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);


               }

是否有原始问题的解决方案。感谢。

1 个答案:

答案 0 :(得分:0)

一旦ajax响应成功,我就召回了事件加载函数。

success: function (response) {
    $('#calendar').fullCalendar('removeEvents');
    $('#calendar').fullCalendar('refetchEvents');
},