如何在fullcalendar中创建全天活动

如何在fullcalendar中创建全天活动,fullcalendar,Fullcalendar,我真的被这个问题困住了。当我在一天中单击时,如何在fullcalendar中创建一个全天事件 dayClick: function (date, allDay, jsEvent, view) { var eventTitle = prompt('Provide Event title'); if (eventTitle) { $('#calendar').fullCalendar('renderEvent', { title : eventTitle,

我真的被这个问题困住了。当我在一天中单击时,如何在fullcalendar中创建一个全天事件

dayClick: function (date, allDay, jsEvent, view) {

  var eventTitle = prompt('Provide Event title');

  if (eventTitle) {
    $('#calendar').fullCalendar('renderEvent', {
      title : eventTitle,
      allDay : true,
      stick : true,
    });
  }
}

您实际上还没有说这段代码出了什么问题,但似乎很明显您错过了开始和结束日期。否则,日历将如何知道您要将活动放置在何处?您从dayClick方法内部调用renderEvent这一事实没有任何含义,这只是巧合。renderEvent可以随时调用,并且是独立的。它希望您将要添加的事件的所有信息都告诉它

如果您在尝试添加事件后检查了浏览器控制台,您会注意到一个错误,无法读取undefined的属性“stripTime”,这可能会给您提供有关错误性质的线索,与时间有关。您还可以在源代码中跟踪它,查看它在做什么,以及您遗漏了什么

无论如何,由于您希望这是一天的全天事件,因此可以非常轻松地使用回调提供的date属性:

dayClick: function (date, allDay, jsEvent, view) {

  var eventTitle = prompt('Provide Event title');

  if (eventTitle) {
    $('#calendar').fullCalendar('renderEvent', {
      title : eventTitle,
      allDay : true,
      start: date, //specify start date
      stick : true,
    });
  }
}
请注意,根据,只需要启动。end是可选的,我没有使用它。如果指定allDay:true并仅提供开始日期,则fullCalendar将假定它是一天的全天事件


供将来参考:如果您希望在添加事件(例如不是全天事件)时具有更大的灵活性,则应使用select回调,以允许用户通过在日历上拖动鼠标来指定事件的确切开始和结束时间

如果你提供一个终端,它实际上不会绘制任何东西。所以你需要指定star和allDay来绘制这些事件。@somecallitblues我认为我在答案和示例中已经相当清楚地说明了这一点……在本文中有什么需要澄清的吗?我不太清楚你的意思,但如果你能详细说明你的意思,我可以修改它。该示例显示如何添加您提到的开始和全天。当然,如果你只提供一个结束日期,那么它就不能工作,这似乎是不言而喻的。你说结束是可选的,我没有使用它,所以我的回答是指这一点。如果您有开始、结束和全天,日历将不会打印事件。这里不能有end属性。只开始一整天。我希望这是有意义的,我为我的评论过于简短而道歉。@somecallitblues如果你有开始、结束和全天,日历将不会记录事件……对不起,但是你的陈述的证据在哪里?有关包含所有3个属性并显示事件的演示,请参阅。在我对你第一次评论的回复中,我想你是在说,如果只提供截止日期,它将不起作用,而这显然是行不通的。然而,如果你提供开始,结束和全天它工作良好。我只能想也许你正在使用议程视图,并设置为false或其他什么?