Javascript Fullcalendar未呈现事件
在我的网站上使用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
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也不是强制性的
希望这对你有帮助