我想知道我是否在FullCalendar中缺少一个选项。
我目前的默认视图是'月'。但我想要发生的是,如果用户查看“周”视图,则用户下次访问网站时将显示“周”视图而不是月份。我想知道如何在不使用数据库的情况下进行此操作。
我知道jQuery UI Tabs具有使用'缓存'功能的能力......这是我可以在这里实现的吗?如果是这样,怎么样?
任何方向都会令人感激。
答案 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); }