我真的很困惑。如果点击一天,我怎样才能在fullcalendar中创建一整天的活动。
dayClick: function (date, allDay, jsEvent, view) {
var eventTitle = prompt('Provide Event title');
if (eventTitle) {
$('#calendar').fullCalendar('renderEvent', {
title : eventTitle,
allDay : true,
stick : true,
});
}
}
答案 0 :(得分:1)
您还没有真正说过这段代码出了什么问题,但是您错过了开始和结束日期似乎相当明显。否则,日历将如何知道您要放置活动的位置?它并没有从你调用" renderEvent"这一事实中得到任何暗示。来自" dayClick"方法,这只是一个巧合。 " renderEvent"可以随时调用并且是独立的。它希望您告诉它有关您要添加的事件的所有信息。
如果您在尝试添加活动后检查了浏览器控制台,则表示您发现了错误"无法读取属性' 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,
});
}
}
请注意,根据https://fullcalendar.io/docs/event_data/Event_Object/,只有"开始"是必须的。 "端"是可选的,我还没有使用它。如果你指定" allDay:true"并且仅提供开始日期,然后fullCalendar将假定它是一天的全天活动。
供将来参考:如果您想要更灵活地添加活动(例如,不是全天活动),您应该使用"选择"回调而不是允许用户通过在日历上拖动鼠标来指定事件的确切开始和结束时间。 https://fullcalendar.io/docs/selection/select_callback/