2010-12-02 117 views
2

我使用ColdFusion从http://arshaw.com/fullcalendar/实施FullCalendar。我将外部事件从日历中删除。这是工作很好,但我不能更新FullCalendar:拖放一个事件,但无法更新此事件

$('#calendar').fullCalendar('updateEvent', responseText.NewID); 

我需要这样做,我可以把新的ID从DEM数据库上的事件,像调整大小等操作时,拖放到其他日或删除它。

我可以从整个网站做一个重新加载,但它不是真正用户友好的,因为这个月将是实际的月份,而不是我之前选择的月份。

我的代码看起来是这样的:

drop: function(date, allDay) { // this function is called when something is dropped 

    // retrieve the dropped element's stored Event Object 
    var originalEventObject = $(this).data('eventObject'); 

    // we need to copy it, so that multiple events don't have a reference to the same object 
    var copiedEventObject = $.extend({}, originalEventObject); 

    // assign it the date that was reported 
    copiedEventObject.start = date; 
    copiedEventObject.allDay = allDay; 

    // render the event on the calendar 
    // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/) 
    $('#calendar').fullCalendar('renderEvent', copiedEventObject, true); 

    var formdata = "startdatum="+copiedEventObject.start; 

    $.ajax({ 
    url: '<cfoutput>#application.TartalomURL#</cfoutput>mod_Kalender/act_event_ins.cfm', 
    data: formdata, 
    type: "POST", 
    dataType: "json", 
    cache: false, 
    success: function(responseText){ 
    $('#calendar').fullCalendar('updateEvent', responseText.NewID); 
    } 
     }); 
}, 

有没有人有一个想法是什么,我的编程错误?

+0

您是否收到可以在此处发布的错误? – 2010-12-02 21:58:23

+0

如果您使用控制台,请添加console.log(responseText)并查看返回的内容 – 2010-12-02 21:59:02

+2

我的猜测是,NewID可能是大写字母。 – 2010-12-02 21:59:20

回答

2

由于JavaScript是大小写敏感的,应该这行:

$('#calendar').fullCalendar('updateEvent', responseText.NewID) 

$('#calendar').fullCalendar('updateEvent', responseText.newid) 
3

请参阅fullcalendar文档: arshaw fullcalendar updateEvent

您需要的情况下使用updateEvent方法即:

$.ajax({ 
    url: '<cfoutput>#application.TartalomURL#</cfoutput>mod_Kalender/act_event_ins.cfm', 
    data: formdata, 
    type: "POST", 
    dataType: "json", 
    cache: false, 
    success: function(responseText){ 
     originalEvent.id = responseText.newid; //use the originating event object and update it 
     $('#calendar').fullCalendar('updateEvent', originalEvent); 
    } 
    });