FullCalendar“视图”可缓存

时间:2011-05-15 22:30:44

标签: jquery jquery-ui caching fullcalendar

我想知道我是否在FullCalendar中缺少一个选项。

我目前的默认视图是'月'。但我想要发生的是,如果用户查看“周”视图,则用户下次访问网站时将显示“周”视图而不是月份。我想知道如何在不使用数据库的情况下进行此操作。

我知道jQuery UI Tabs具有使用'缓存'功能的能力......这是我可以在这里实现的吗?如果是这样,怎么样?

任何方向都会令人感激。

5 个答案:

答案 0 :(得分:7)

changeView不起作用,因为在设置日历时会调用viewDisplay。

这是有效的:

在初始化对象中,添加:

defaultView: $.cookie('fullcalendar_defaultView') || 'month',

viewDisplay: function(view) { $.cookie('fullcalendar_defaultView', view.name); }

答案 1 :(得分:2)

您可以使用jQuery.cookie将此设置存储在Cookie中,这是Tabs使用的库。您如何处理此问题以及设置的位置更多是您需要回答的问题,因为您没有提供任何代码。

答案 2 :(得分:2)

您可以使用viewdisplay事件

一个好的Cookie插件是http://plugins.jquery.com/project/Cookie

答案 3 :(得分:0)

在您的情况下,您必须将代码放在viewDisplay事件中。 http://arshaw.com/fullcalendar/docs/display/viewDisplay/

类似的东西。

$('#calendar').fullCalendar({
    viewDisplay: function(view) {
        setCookie("lastView", view.name);
    }
});

您可以在此处获取有关查看存储信息的更多信息 http://arshaw.com/fullcalendar/docs/views/View_Object/

,然后下,  所有你需要做的就是当页面加载方法时使用changeView(例如在jQuery ready或其他东西中)

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

类似于

.fullCalendar( 'changeView', getCookie("lastView") )

jQuery有很多cookie插件,但它们的操作略有不同。我基于http://jquery-howto.blogspot.com/2010/09/jquery-cookies-getsetdelete-plugin.html处找到的一些pureJS代码,我可能会在某处出现更好的代码。

答案 4 :(得分:0)

在版本中:3.0.0 viewDisplay已重命名为viewRender,因此当前代码应该是这样的:

defaultView: $.cookie('fullcalendar_defaultView') || 'month', viewRender: function(view) { $.cookie('fullcalendar_defaultView', view.name); }