fullcalendar - 当点击上一个/下一个时,移动的事件再次恢复到旧日期

时间:2015-05-04 10:28:20

标签: javascript jquery fullcalendar

我在我的应用程序中使用fullcalendar(v2.0.0)。从数据库和用户显示的所有事件都可以拖放和更新事件。一切正常,除了放弃的事件再次进入旧日期,点击fullcalendar&#39下一个/上一个按钮

检查我的小提琴http://jsfiddle.net/Manivasagam/3E8nk/1021/

$('#calendar').fullCalendar({
events:"/FullcalendarProject/FullCalendarChecking" 
  // my events will be like this from DB [{title: 'Plants',start: '2015-05-18'}, {title: 'Animals',start: '2015-05-23'}]

});

确切的问题是,如果我将植物事件拖放到2015-05-20然后它移动到2015-05-20,但如果我点击下一个/上一个然后再次移动事件返回至2015-05-18。

为什么会这样?如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您需要编写日历的丢弃事件回调,在该回调中您将新的日期发送到服务器,服务器将更新db中的事件日期,以便下次更新日期如下

$('#calendar').fullCalendar({
events:"/FullcalendarProject/FullCalendarChecking" ,
  // my events will be like this from DB [{title: 'Plants',start: '2015-05-18'}, {title: 'Animals',start: '2015-05-23'}]
eventDrop: function (event, delta, minuteDelta, allDay, revertFunc) {
                console.log(event);
//asking for confirmation from user using $.prompt you can skip and send direct ajax
                $.prompt("Are you sure you want to move the events "+delta+" days?", {
                    title: "Are you Sure?",
                    buttons: { "Yes": true, "No": false },
                    submit: function (e, v, m, f) {
                        // use e.preventDefault() to prevent closing when needed or return false.
                        // e.preventDefault();
                        if (v)
                        {
                            $.ajax({
                                url: "/modules/crm_events/support/changeEventDate.php",
                                data: { id: event.id, changeDays: delta , table:event.className[2] , part:event.part },
                                type: "GET",
                                dataType: "json",
                            }).done(function (data) {

                            });
                        }
                        else
                        {
                            revertFunc();
                        }
                    }
                });
            },
});