此代码适用于Chrome和Firefox,但在Safari上,日历甚至不会加载到屏幕上 .
基本上我需要从另一个网站自动提取事件数据,然后将其提供给完整日历 . 其他网站发送事件详细信息的格式是具有“名称”和“时间”属性的数组 . 完整日历以名为“events”的数组形式获取事件详细信息,其中包含属性“title”和“start” . 因此,使用下面的代码,我尝试重命名数组和属性以遵循完整日历的格式 . 然后在渲染日历的代码中,我将该数组称为“事件” . 它适用于Chrome和Firefox,但在Safari上却没有,而且控制台告诉我它在属性名称“事件”后期待“:”?如何让它与Safari一起使用?
var getEvents = function() {
$.ajax({
type: "GET",
url: API_ENDPOINT,
dataType: 'jsonp',
success: displayEvents
});
};
var displayEvents = function(data) {
var events = data.results;
function changeData(events) {
var start;
for (var i=0; i < events.length; i++) {
if (events[i].hasOwnProperty("name")) {
events[i]["title"] = events[i]["name"];
delete events[i]["name"];
}
if (events[i].hasOwnProperty("time")) {
events[i]["start"] = events[i]["time"];
delete events[i]["time"];
}
if (events[i].hasOwnProperty("start")) {
start = events[i].start;
events[i].start = new Date(start);
}
}
}
changeData(events);
console.log(events);
$('#calendar').fullCalendar({
events
});
}
getEvents();
1 回答
只需改变
$('#calendar').fullCalendar({ events });
到
$('#calendar').fullCalendar({ events: events });
其中第一个
events
是您传递给$.fullCalendar()
函数的对象的属性名称,第二个events
是值,即您之前定义的变量 .