jQuery FullCalendar:无法使用renderEvent()方法呈现事件

时间:2011-06-18 13:19:09

标签: javascript fullcalendar

在我的网站上,我按下了“隐藏空闲时间”和“显示空闲时间”按钮。

当用户单击“隐藏”时,将运行以下代码以获取“freeTime”数组,其中所有具有id“regular”和“relief”的Event对象:

function hideFreeTime() {
    freeTime.length = 0;
    freeTime = $('#calendar').fullCalendar('clientEvents', 'free');
    $('#calendar').fullCalendar('removeEvents', 'free');
}

当用户单击“显示”时,将运行以下代码以在“freeTime”数组中呈现Event对象:

function showFreeTime() {
    for(var i = 0; i < freeTime.length; i++) {
        $('#calendar').fullCalendar('renderEvent', freeTime[i]);
    }
}

以上代码可以隐藏事件,但我不知道为什么它不能重新呈现隐藏事件。 但是,如果我将“showFreeTime()”函数更改为以下内容,它将起作用:

function showFreeTime() {
for(var i = 0; i < freeTime.length; i++) {
    if (freeTime[i].id == 'regular') $('#calendar').fullCalendar('renderEvent',
    {
        id: 'free',
        title : 'Free Time',
        start : freeTime[i].start,
        end   : freeTime[i].end
    });
}

}

有人可以给我解释一下吗? =)

祝你好运, 詹姆斯

1 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,并通过检查以下内容来解决问题。开始和结束时间格式不正确,或者全天事件默认为true。

allDay 对或错。可选的。

  

为事件或eventSources指定事件对象时,省略   此属性将使其继承自allDayDefault,即   通常是真的

start 日期。必需的。

  

为事件或eventSources指定事件对象时,您可以   指定IETF格式的字符串(例如:&#34; Wed,2009年10月18日13:00:00   EST&#34;),ISO8601格式的字符串(例如:&#34; 2009-11-05T13:15:30Z&#34;)   或UNIX时间戳。