Fullcalendar v5 只呈现一个事件提示
Fullcalendar v5 only renders one event tip
我正在尝试在 v5 全日历中呈现一些事件。这是我的代码:
document.addEventListener('DOMContentLoaded',function(){
var cUI= document.getElementById('calendar');
var c= new FullCalendar.Calendar(cUI,{
themeSystem: 'bootstrap',
headerToolbar:{
left:'prev,next today',
center:'title',
right:'',
},
events:[
{% for v in vacation %}
{
{% if v.id_cause.cause_name == 'Vacations' %}
backgroundColor : 'blue',
borderColor : 'blue',
{% else %}
backgroundColor : 'darkgreen',
borderColor : 'darkgreen',
{% endif %}
textColor : 'gray',
title:"{{ v.startT }} - {{ v.endT }}",
start: "{{ v.startD | date:'Y-m-d' }}",
end: "{{ v.endD | date:'Y-m-d' }}",
description:"{{v.id_cause.cause_name}} {{v.cause_text}}",
},
{% endfor %}
],
{% comment %} eventDidMount: function(info) {
var tooltip = tippy('.fc-event-title-container',{
content: info.event.extendedProps.description,
placement: 'top',
interactive: true,
});
}, {% endcomment %}
});
c.render();
c.setOption('locale','en');
});
---更新---
document.addEventListener('DOMContentLoaded',function(){
var cUI= document.getElementById('calendar');
var c= new FullCalendar.Calendar(cUI,{
themeSystem: 'bootstrap',
headerToolbar:{
left:'prev,next today',
center:'title',
right:'',
},
events:[
{backgroundColor : 'blue',
borderColor : 'blue',
textColor : 'gray',
title:"08:00-09:00",
start: "2021-10-13",
end: "2021-10-20",
description:"vacation- holy time"},
{backgroundColor : 'green',
borderColor : 'green',
textColor : 'gray',
title:"08:00-10:00",
start: "2021-10-15",
end: "2021-10-15",
description:"medical- future´s coming"},
],
eventDidMount: function(info) {
var tooltip = tippy('.fc-event-title-container',{
content: info.event.extendedProps.description,
placement: 'top',
interactive: true,
});
},
});
c.render();
c.setOption('locale','en');
});
---更新---
它呈现日历和提示,但是它对所有事件重复相同的提示,但不同 cause_names 的颜色显示不同,所以我不明白它正确地呈现所有事件及其数据但提示失败。
我在 django 3 顺便说一句。
也许使用 eventRender 回滚到以前的 fullcalendar 版本,而不是 eventDidMount?
感谢帮助
通过为 tippy 提供 class 选择器 .fc-event-title-container
,您可以将每个工具提示附加到所有事件(因为它们都有 class)。所以最后,每个工具提示都附加到每个事件。
然后它们在显示时重叠,有时您可以看到不同文本的一些文本,有时只是最近的文本,具体取决于 tippy 如何渲染它们。
您只需指定要将该工具提示附加到的特定事件元素。由于 tippy will accept an element object (instead of a selector string) as input, this is straightforward because the eventDidMount
callback arguments provide you with the correct element object 直接。
这样做比使用选择器更有意义,因为 fullCalendar HTML 事件元素在标记中没有单独的唯一 ID。
代码:
eventDidMount: function (info) {
var tooltip = tippy(info.el, {
content: info.event.extendedProps.description,
placement: "top",
interactive: true
});
}
我正在尝试在 v5 全日历中呈现一些事件。这是我的代码:
document.addEventListener('DOMContentLoaded',function(){
var cUI= document.getElementById('calendar');
var c= new FullCalendar.Calendar(cUI,{
themeSystem: 'bootstrap',
headerToolbar:{
left:'prev,next today',
center:'title',
right:'',
},
events:[
{% for v in vacation %}
{
{% if v.id_cause.cause_name == 'Vacations' %}
backgroundColor : 'blue',
borderColor : 'blue',
{% else %}
backgroundColor : 'darkgreen',
borderColor : 'darkgreen',
{% endif %}
textColor : 'gray',
title:"{{ v.startT }} - {{ v.endT }}",
start: "{{ v.startD | date:'Y-m-d' }}",
end: "{{ v.endD | date:'Y-m-d' }}",
description:"{{v.id_cause.cause_name}} {{v.cause_text}}",
},
{% endfor %}
],
{% comment %} eventDidMount: function(info) {
var tooltip = tippy('.fc-event-title-container',{
content: info.event.extendedProps.description,
placement: 'top',
interactive: true,
});
}, {% endcomment %}
});
c.render();
c.setOption('locale','en');
});
---更新---
document.addEventListener('DOMContentLoaded',function(){
var cUI= document.getElementById('calendar');
var c= new FullCalendar.Calendar(cUI,{
themeSystem: 'bootstrap',
headerToolbar:{
left:'prev,next today',
center:'title',
right:'',
},
events:[
{backgroundColor : 'blue',
borderColor : 'blue',
textColor : 'gray',
title:"08:00-09:00",
start: "2021-10-13",
end: "2021-10-20",
description:"vacation- holy time"},
{backgroundColor : 'green',
borderColor : 'green',
textColor : 'gray',
title:"08:00-10:00",
start: "2021-10-15",
end: "2021-10-15",
description:"medical- future´s coming"},
],
eventDidMount: function(info) {
var tooltip = tippy('.fc-event-title-container',{
content: info.event.extendedProps.description,
placement: 'top',
interactive: true,
});
},
});
c.render();
c.setOption('locale','en');
});
---更新--- 它呈现日历和提示,但是它对所有事件重复相同的提示,但不同 cause_names 的颜色显示不同,所以我不明白它正确地呈现所有事件及其数据但提示失败。 我在 django 3 顺便说一句。 也许使用 eventRender 回滚到以前的 fullcalendar 版本,而不是 eventDidMount? 感谢帮助
通过为 tippy 提供 class 选择器 .fc-event-title-container
,您可以将每个工具提示附加到所有事件(因为它们都有 class)。所以最后,每个工具提示都附加到每个事件。
然后它们在显示时重叠,有时您可以看到不同文本的一些文本,有时只是最近的文本,具体取决于 tippy 如何渲染它们。
您只需指定要将该工具提示附加到的特定事件元素。由于 tippy will accept an element object (instead of a selector string) as input, this is straightforward because the eventDidMount
callback arguments provide you with the correct element object 直接。
这样做比使用选择器更有意义,因为 fullCalendar HTML 事件元素在标记中没有单独的唯一 ID。
代码:
eventDidMount: function (info) {
var tooltip = tippy(info.el, {
content: info.event.extendedProps.description,
placement: "top",
interactive: true
});
}