我曾经有
$('#calendar').fullCalendar({
//some properties...
events: "/Agenda/GetEvents/",
});
它工作得很好,我的事件显示正确。现在我想更新一个组合框选择的事件(refetch),下面是我所做的修改:
$('#calendar').fullCalendar({
//some properties...
events: function (start, end) {
$.ajax({
url: '/Agenda/GetEvents/',
dataType: 'json',
data: {
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000),
utilisateur: $("#Utilisateur option:selected").val()
}
});
$('#Calendar').fullCalendar('refetchEvents');
},
});
url/Agenda/GetEvents/被正确调用并返回一个事件,但它不再显示在日历上。我做错了什么吗?
查看这里的文档以获取单一来源的事件。
完整日历
需要修改的地方很少。
$('#calendar').fullCalendar({
events: function(start, end, callback) {
$.ajax({
url: 'myxmlfeed.php',
dataType: 'xml',
data: {
// our hypothetical feed requires UNIX timestamps
start: Math.round(start.getTime() / 1000),
end: Math.round(end.getTime() / 1000)
},
success: function(doc) {
var events = [];
$(doc).find('event').each(function() {
events.push({
title: $(this).attr('title'),
start: $(this).attr('start') // will be parsed
});
});
callback(events);
}
});
}
});
解决方案很难找到,但我在这里找到了一个可行的方法
http://mikesmithdev.com/blog/jquery-full-calendar/在阅读了几个小时的代码后,我发现了一个关于allDay选项的意外配置。每个事件必须有allDay=false,如下所示:
evts.push({ title: "Teste", start: "2014/01/18 10:30", end: "2014/01/18 13:00", allDay: false });
callback(evts);
删除回调函数,从成功块中调用$('#calendar').fullCalendar('refetchEvents');