Fullcalendar不呈现事件

时间:2013-04-09 19:48:44

标签: javascript fullcalendar

在我的网站上使用Fullcalendar,我有一个允许用户过滤某些事件的按钮。当他们单击按钮隐藏某些事件时,会触发这样的函数:

var hidden_elements = [];

function toggle_hidden_events(toggle) {
    // remove events
    if(!toggle) {
        // Puts the event objects we're hiding into a global array, and also removes them from Fullcalendar (works fine)
        hidden_elements = hide_elements();
    }
    else {
        // does not work
        show_events(); // we dont pass the var since its global
    }
}

第一个块if(!toggle)正常工作并隐藏正确的事件并正确地将它们分配给数组。

但是,当我拨打show_events()时,它无法正常工作。这是函数的样子:

function show_events() {
    while(hidden_elements.length > 0) {
        var event = hidden_elements.pop();
        $("#calendar").fullCalendar('renderEvent', event, true);
    }
}

使用console.log(event),我已经确认有效的事件对象正在传递给renderEvent函数。但是,他们没有出现在日历上。

1 个答案:

答案 0 :(得分:2)

看起来很奇怪,我尝试过试验并发现同样的问题。当我们尝试渲染时,fullcalendar日历返回的事件对象没有显示,但是如果我们将事件对象简化为它的基本属性,或者删除“source”键,则事件得到正确呈现。

    var myNewEvent = {
        "id": removedEvt.id,
            "title": removedEvt.title,
            "start": removedEvt.start,
            "end": removedEvt.end,
            "_id": removedEvt._id,
            "_start": removedEvt._start,
            "_end": removedEvt._end
        /*,
            "source" : removedEvt.source*/
    };

以下是演示链接,单击切换将切换事件。如果取消注释源键,则不会呈现事件。但是_id,_start,_end也不是强制性的。

<强> DEMO

希望这会对你有所帮助。