如何动态设置全日历选项


创建

日历后如何设置minTimemaxTime选项?

我尝试了以下方法,但不起作用:

$('#calendar').fullCalendar('option', 'minTime', 7);
$('#calendar').fullCalendar('render');
我不知道

它是否仍然相关,但我可以使用以下语句更改选项:

可选示例:

$('#calendar').fullCalendar('getView').calendar.options.selectable = false;
$('#calendar').fullCalendar('render'); // rerender to see visual changes

虽然它不是动态的,但至少您不必销毁整个日历并重新获取您的事件:-)

通过这种方式,您可以更改任意数量的日历选项:

// save the calendar options in a variable
var calendarOptions = $('#calendar')
     .fullCalendar('getView')
     .options;
// make your changes to the calendar options
// I wanted to change the slotDuration
calendarOptions.slotDuration = '00:20:00';
// destroy the calendar
$('#calendar')
     .fullCalendar('destroy');
//Lets load the calendar with the new options
$('#calendar')
     .fullCalendar(calendarOptions);

希望这有帮助。谢谢。

此功能已在 v2.9.0 中正式发布: http://fullcalendar.io/docs/utilities/dynamic_options/

如果不重新创建日历,则无法完成。

更新:可以在 v 2.9 中完成:见下文

此功能在这里有一个未解决的问题:

https://code.google.com/p/fullcalendar/issues/detail?id=293

只是我,伙计的回答实际上是我找到自己的唯一方式。

这只是对前一个答案的补充:如果要更改可编辑选项(如果要锁定事件以在更新数据库之前要求确认更改,这将非常有用,这有点棘手。万一它可以为我转储代码的人节省一些时间:

var view = $('#calendar').fullCalendar('getView');
view.calendar.options.editable = false;
view.calendar.overrides.editable = false;
view.calendar.viewSpecCache.month.options.editable = false;
view.calendar.viewSpecCache.agendaWeek.options.editable = false;
view.calendar.viewSpecCache.agendaDay.options.editable = false;
$('#calendar').fullCalendar('render');

您显然将所有那些 false 更改为 true 才能解锁。

这段代码对我来说做得很好。在任何地方调用此函数并向其传递尽可能多的自定义变量,但不要忘记先销毁以前的日历

function initializeCalendar( timeIntervalCustom ) {
  $('#calendar'+id).fullCalendar({
  slotMinutes: timeIntervalCustom,
});                       
}
$('#calendar').fullCalendar("destroy");
initializeCalendar(10);

相关内容

  • 没有找到相关文章

最新更新