我正在尝试将eventRender功能用于多个Google日历。我有日历工作,但是当我从示例中添加eventRender代码时,我会丢失日历。我在这里制作了一个代码:https://codepen.io/christidtp/pen/MVrMdB
$(function() {
$('#calendar').fullCalendar({
themeSystem: 'bootstrap4',
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listMonth'
},
weekNumbers: false,
eventLimit: true, // allow "more" link when too many events
googleCalendarApiKey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
eventSources: [
{
googleCalendarId: 'XXXX@group.calendar.google.com'
},
{
googleCalendarId: 'XXXX@group.calendar.google.com',
className: 'nice-event'
}
],
eventRender: function(eventObj, $el) {
$el.popover({
title: eventObj.title,
content: eventObj.description,
trigger: 'hover',
placement: 'top',
container: 'body'
});
},
});
});
答案 0 :(得分:1)
你的函数eventRender中不应该有$前缀参数el ......
答案 1 :(得分:0)
我遇到了同样的问题。从事件对象的文档(https://fullcalendar.io/docs/event-object):
非标准字段
除上述字段外,您还可以在每个事件对象中包含您自己的非标准字段。 FullCalendar不会修改或删除这些字段。例如,开发人员通常包含一个描述字段,用于回调,例如eventRender。
如果Google日历事件没有描述,那么该字段是未定义的,并且会导致无声错误,很可能是因为它在回调中。
这是我的解决方案。我对javascript一无所知,所以如果在这种情况下有更安全的方式来安全获取房产,我会很好奇。
eventRender: function(eventObj, el) {
if (eventObj.description === undefined) {
eventObj.description = "";
}
$(el).popover({
trigger: 'hover',
title: eventObj.title,
content: eventObj.description,
placement: 'top',
container: 'body'
});
}