我对全日历有疑问。我已经通过使用函数eventDrop
将事件插入到数据库中,并且我想从数据库插入ID中为插入的事件库绑定一个ID,以便可以轻松跟踪更新。
问题是我在成功函数上渲染事件后,遇到事件数据重复的情况,如果我要警告它,则顶部数据具有ID,而当我警告它时,其他数据具有未定义的ID。我尝试搜索类似的解决方案:我尝试将渲染修改为$('#calendar').once('#calendar').fullCalendar('renderEvent',event'true);
,结果很好,但是event.id.toString();
未定义。
我还尝试过在渲染之前破坏日历:
$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar('renderEvent',event,true);
它也不会复制我的事件,但是当我添加另一个事件时,则不会显示我的另一个事件。
我还尝试了$('#calendar').fullCalendar('renderEvent',event,false);
,但仍不能解决问题。
这是我的完整代码:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month'
},
editable: true,
droppable: true, // This allows things to be dropped onto the calendar.
eventDrop: function(event,delta,revertFunc) {
let dropedDate = event.start.format("YYYY-MM-DD");
let todayDate = $('#calendar').fullCalendar('getDate');
let todayDateFormat = todayDate.format("YYYY-MM-DD");
if(dropedDate < todayDateFormat) {
alert("Cannot move to previous dates.");
revertFunc();
}else {
if(!confirm("Are you sure about this change?")) {
revertFunc();
}else {
editDrop(event);
}
}
},
eventReceive: function(event,view) {
addDrop(event);
},
// events: [
// {
// title: 'Long Event',
// start: new Date(y, m, d-5),
// end: new Date(y, m, d-2)
// },
// ]
});
这是我的addDrop事件函数:
function addDrop(event) {
let start = event.start.format("YYYY-MM-DD");
$.ajax({
url:siteurl+"dashboard_admin/Admin_Calendar/addCalendar",
data:{"title":event.title,"eventDate":start},
traditional:true,
type:"POST",
success: function(data) {
event = {
id: data.toString(),
title: event.title,
start: start,
}
$('#calendar').fullCalendar('renderEvent',event,true);
}
});
}
这是我的editDrop函数:
function editDrop(event) {
let start = event.start.format("YYYY-MM-DD");
let id = event.id;
alert(id);
$.ajax({
url:siteurl+"dashboard_admin/Admin_Calendar/editCalendar",
data:{"title":event.title,"eventDate":start},
traditional:true,
type:"POST",
success: function(data) {
}
});
}