【发布时间】:2021-01-24 20:47:05
【问题描述】:
在 FullCalendar v3 中,有一个选项可以在加载所有事件后捕获。
eventAfterAllRender
它似乎在 v4 中被删除。正如这里所说: https://fullcalendar.io/docs/v4/upgrading-from-v3
这里有一个代码 sn-p 来准备 v5 中的演示日历。
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<link href='https://cdn.jsdelivr.net/npm/fullcalendar@5.5.1/main.min.css' rel='stylesheet' />
<script src='https://cdn.jsdelivr.net/npm/fullcalendar@5.5.1/main.min.js'></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
},
initialDate: '2020-09-12',
navLinks: true, // can click day/week names to navigate views
businessHours: true, // display business hours
editable: true,
selectable: true,
events: [
{
title: 'Business Lunch',
start: '2020-09-03T13:00:00',
constraint: 'businessHours'
},
{
title: 'Meeting',
start: '2020-09-13T11:00:00',
constraint: 'availableForMeeting', // defined below
color: '#257e4a'
},
{
title: 'Conference',
start: '2020-09-18',
end: '2020-09-20'
},
{
title: 'Party',
start: '2020-09-29T20:00:00'
},
// areas where "Meeting" must be dropped
{
groupId: 'availableForMeeting',
start: '2020-09-11T10:00:00',
end: '2020-09-11T16:00:00',
display: 'background'
},
{
groupId: 'availableForMeeting',
start: '2020-09-13T10:00:00',
end: '2020-09-13T16:00:00',
display: 'background'
},
// red areas where no events can be dropped
{
start: '2020-09-24',
end: '2020-09-28',
overlap: false,
display: 'background',
color: '#ff9f89'
},
{
start: '2020-09-06',
end: '2020-09-08',
overlap: false,
display: 'background',
color: '#ff9f89'
}
]
});
calendar.render();
});
</script>
<style>
body {
margin: 40px 10px;
padding: 0;
font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
font-size: 14px;
}
#calendar {
max-width: 1100px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
Codepen:https://codepen.io/wetruck/pen/poEXEve
在 v5 中加载所有事件后是否有任何选项可以执行操作?
我实际上使用的是 html 加载器。它与页面加载一起显示。但是在加载完所有事件后,它应该被删除。
【问题讨论】:
-
不,没有。加载完所有事件后,您究竟需要做什么?
-
???我问了一个问题。你能回答吗?
-
不,你没有。在您最初的问题中,您已经说过您需要在所有事件加载后执行操作。我在问这个动作到底是什么?以防万一也许有另一种方法可以实现您的总体目标。如果我们了解您想要做什么以及原因,那么也许我们可以帮助您找到其他解决方案。
-
好的。那么这对你的申请有什么帮助呢?好像没什么大不了的。如果它不再存在,那又如何?在上面的示例代码中,事件是硬编码的,因此无论如何它们都会立即加载。您是否可能从真实应用程序中的 JSON 提要中获取它们?
-
如果您所做的只是将其记录到控制台,为什么会有大问题?那没有意义。控制台日志记录仅用于开发目的。您可以查看开发工具中的网络选项卡以查看 AJAX 请求需要多长时间,但这当然没有考虑渲染时间。在实际应用程序中,您这样做还有其他目的吗?因为正如我最初所说,答案是否定的,在 fullCalendar 5 中没有直接替代此功能。如果您真的需要解决方法,则必须提出一个真正的用例。
标签: javascript php jquery fullcalendar fullcalendar-5