【发布时间】:2015-04-30 01:12:26
【问题描述】:
我正在尝试让日历插件 (FullCalendar) 显示不同的天数,具体取决于用户是在移动设备、平板电脑还是桌面断点上查看网站。为此,我需要日历在桌面上显示正常的一周,在移动设备上显示 3 天。像普通插件一样,你初始化元素并传递一些选项。我已经尝试了几件事。
工作代码如下:
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay',
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
},
此代码将以 3 天的视图显示日历。这对移动设备很好,但当我想显示一整周时,会在桌面上显示 3 天。这基本上就是我想要做的:
$('#calendar').fullCalendar({
timeFormat:'h(:mm)a',
header:{
left:'prev',
center:'title',
right:'next'
},
height: 650,
if ($(window).width() <= 481){
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay',
} else {
defaultView: 'basicWeek',
}
titleFormat: {
week: 'MMMM YYYY'
},
columnFormat: {
week: 'dddd M/D',
day: 'ddd M/D'
},
我可以将整个函数包装在 if 语句中,但是,在我复制到这里之后,整个函数还在继续。至少 200 行代码,我不想复制所有代码只是为了获得一个单一的更改。无论如何,我可以根据窗口大小更改选项?
我也尝试在上述函数中将 defaultView 设置为 basicWeek,然后在关闭后添加:
if (jQuery(window).width() <= 481) {
jQuery('#hp-availability-calendar').fullCalendar({
views: {
basicThreeDay: {
type: 'basic',
duration: { days: 3 },
buttonText: '3 day'
},
},
defaultView: 'basicThreeDay'
});
};
这也不行。
【问题讨论】:
-
为什么不使用 if/else 将值分配给变量,然后将 defaultView 设置为变量而不是硬编码文本?
标签: javascript jquery fullcalendar