4

在脚本的开头,我有许多选项传递给日历。

初始化后,执行以下操作不会更改现有日历的视图,而是创建一个新日历

$('.calendar-container').fullCalendar({
   defaultView: 'agendaWeek'
});

问题:如何更改已存在.calendar-containerdiv 中的日历的视图?

4

3 回答 3

3

FullCalendar 仅支持在初始化后更改一些选项,例如heightcontentHeightaspectRatio。如果要更改其他选项,则应销毁当前日历,并使用新选项再次初始化 FullCalendar。

您可能想记住当前状态,以便在日历被销毁后重新创建它。将此回调包含在您的 FullCalendar 选项中,并将视图保存在某个变量中,您可以在日历被销毁后访问该变量:

viewDisplay: function(view) {
    latestView = view;
}

然后您可以在日历重新初始化后调用这些方法,并重新创建日历所处的状态(如相同的视图和日期范围):

$("#calendar").fullCalendar('changeView', latestView.name);
$("#calendar").fullCalendar('gotoDate', latestView.start);
于 2013-08-04T20:27:14.933 回答
1

如果您仔细阅读他们的文档,则会明确指定。

有一个改变视图的功能。

.fullCalendar( 'changeView', viewName )

http://arshaw.com/fullcalendar/docs/views/changeView/

于 2013-08-02T13:06:04.370 回答
0

想象一下你想改变事件源......

function getSources(switcher){    

        if(switcher== "option1"){
            return [othersources.opt1,othersources.opt2];

        }else{
            if(switcher== "option2"){                       
            return [othersources.opt3];}
        }      
    }


...
eventSources: getSources(switcher),
...

您可以找到一种使用简单函数更改任何属性的方法...

希望它有所帮助...

于 2013-08-02T21:37:35.007 回答