我在我的应用程序中使用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。
为什么会这样?如何解决这个问题?
答案 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();
}
}
});
},
});