此代码适用于Chrome和Firefox,但在Safari上,日历甚至不会加载到屏幕上。
基本上我需要从其他网站自动提取事件数据,然后将其提供给完整日历。其他网站发送事件详细信息的格式是一个包含属性" name"和"时间。"完整日历以一个名为" events"的数组的形式获取事件详细信息。具有属性"标题"并且"开始。"因此,使用下面的代码,我尝试重命名数组和属性以遵循完整日历的格式。然后在渲染日历的代码中,我将该数组称为#34; events"。它可以在Chrome和Firefox中运行,但在Safari上却没有,而且控制台告诉我它正在期待一个":#34;属性名称"事件"?如何让它与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();
答案 0 :(得分:0)
只需更改$('#calendar').fullCalendar({ events });
到$('#calendar').fullCalendar({ events: events });
其中第一个events
是您传递给$.fullCalendar()
函数的Object的属性名称,第二个events
是值,即您之前定义的变量。< / p>