我看到了在代码中重复events的示例,但是我对它的工作方式感到困惑。我该如何添加每个星期一下午4:30发生的事件(现在将events作为数组添加)?我正在尝试使用basicWeek视图。

最佳答案

fullCalendar中的事件模型不支持使用数组事件源直接添加“重复”事件。

您需要使用外部供稿(JSON URL)或使用javascript函数生成事件。无论哪种方式,您的“源”都具有执行重复事件的逻辑,并且可以在给定的时间范围内完全保留重复事件的所有日期。

例如,使用Javascript函数。

function MyEvents(start,end, callback) {
  var events = [];
  // Setup the meeting on the this weeks "monday"
  var meeting = new Date(start.getFullYear(),
                         start.getMonth(),
                         start.getDate(),
                         4, 30, 00);
  meeting.setDate((meeting.getDate() - meeting.getDay()) + 1);

  while (meeting <= end) {
    events.push({
      id: 2,
      title: "Monday Meeting",
      start: new Date(meeting.valueOf()),
      allDay: false
    });
    // increase by one week
    meeting.setDate(meeting.getDate() + 7);
  }
  callback(events);
}
$('#calendar').fullCalendar({
    //.... Other settings here
    events: MyEvents
    //....
});


这仅处理每周一次的重复,因此您必须相应地为任何其他重复间隔构建逻辑。或者找到一个现有的类来管理重复事件。

要查看此代码的“实际应用”,这里是一个jsbin链接http://jsbin.com/usori3/edit

10-08 15:46