我的完整日历代码适用于Chrome,Firefox,但为什么Safari会出现问题呢?

时间:2015-08-13 22:38:47

标签: javascript jquery safari fullcalendar

此代码适用于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();

1 个答案:

答案 0 :(得分:0)

只需更改$('#calendar').fullCalendar({ events });

即可

$('#calendar').fullCalendar({ events: events });

其中第一个events是您传递给$.fullCalendar()函数的Object的属性名称,第二个events是值,即您之前定义的变量。< / p>