Javascript Fullcalendar未呈现事件

Javascript Fullcalendar未呈现事件,javascript,fullcalendar,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 remo

在我的网站上使用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)
,工作正常,隐藏正确的事件,并将它们正确分配给数组

    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*/
    };
但是,当我调用
show_events()
时,它无法按预期工作。下面是函数的外观:

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

使用
console.log(event)
,我已经验证了有效的事件对象正在传递给
renderEvent
函数。然而,它们并没有出现在日历上。

看起来很奇怪,我试着进行实验,发现了同样的问题。当我们试图呈现fullcalendar日历返回的事件对象时,它不会显示,但是,如果我们将事件对象简化为其基本属性或删除“源”键,则事件将正确呈现

    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也不是强制性的

希望这对你有帮助