im为日历提供以下功能:
$('#calendar').fullCalendar( {
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay' },
editable: true,
eventLimit: true,
events: function(callback) {
$.ajax({
url: '/appointments.json',
dataType: 'json',
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);
}
});
但我一直收到这个错误:
object is not a function //callback(events) line
在浏览器的js控制台上。知道可能是什么问题吗?
假设您使用的是FullCalendar 2.*,如文档中所述,events
的签名是
函数(开始、结束、时区、回调){}
名称为callback
的参数实际上是start
,它是一个momentjs
对象。为了解决您的问题,您必须将参数添加到您的函数中,因此您的代码将是:
events: function( start, end, timezone, callback ) {
只要您的events
(传递给callback
)具有文档中定义的正确格式和参数,这将起作用。
编辑:
如果您想根据json属性上的值来设置每个事件的背景颜色,那么应该使用eventRender
。选中这个jsfiddle,当事件渲染时,每个事件的背景都设置在这里。
正如jsfiddle中所展示的,您可以根据json提供的值有条件地更改背景。