全日历弹出窗口不适用于事件图标
fullcalendar popover not working with event icons
正在尝试使用图标和弹出窗口呈现动态事件。无法让弹出窗口和图标同时工作。我尝试了几种方法。只有第一个 eventRender 函数有效。这是代码。
$(document).ready(function () {
$('#calendar').fullCalendar({
timezone: 'local',
height: 700,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listWeek'
},
defaultDate: '2021-07-16',
navLinks: true,
eventLimit: true,
events: [{ %
for order in orders %
} {
id: '{{ order.event.id}}',
title: '{{ order.event.title }}',
start: '{{ order.event.start }}',
end: '{{ order.event.end }}',
description: '{{ order.event.description }}',
backgroundColor: '#b3e6ff',
icon: 'calendar-alt',
},
{ % endfor %
}
}
],
eventRender: function (event, element) {
if (event.icon) {
element.find(".fc-title").prepend("<i class='fa fa-" + event.icon + "'></i>");
}
},
eventRender: function (eventObj, $el) {
$el.popover({
title: eventObj.title,
content: eventObj.description,
trigger: 'hover',
placement: 'top',
container: 'body'
});
},
});
});```
您有两个单独的 eventRender 函数...这不会起作用。当您像这样列出 fullCalenadar 的选项时,您正在定义一个包含大量命名属性的 JS 对象 - 每个选项一个。
按照标准的 JS 行为,如果您在一个对象中指定相同的 属性 两次,那是无效的 - 它只是使用您写的最后一个。 属性对象中的名称必须是唯一的,否则代码无法区分它们。
所以您需要做的就是将单独的 eventRender 选项合并为一个:
eventRender: function (eventObj, $el) {
if (eventObj.icon) {
$el.find(".fc-title").prepend("<i class='fa fa-" + eventObj.icon + "'></i>");
}
$el.popover({
title: eventObj.title,
content: eventObj.description,
trigger: 'hover',
placement: 'top',
container: 'body'
});
},
正在尝试使用图标和弹出窗口呈现动态事件。无法让弹出窗口和图标同时工作。我尝试了几种方法。只有第一个 eventRender 函数有效。这是代码。
$(document).ready(function () {
$('#calendar').fullCalendar({
timezone: 'local',
height: 700,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listWeek'
},
defaultDate: '2021-07-16',
navLinks: true,
eventLimit: true,
events: [{ %
for order in orders %
} {
id: '{{ order.event.id}}',
title: '{{ order.event.title }}',
start: '{{ order.event.start }}',
end: '{{ order.event.end }}',
description: '{{ order.event.description }}',
backgroundColor: '#b3e6ff',
icon: 'calendar-alt',
},
{ % endfor %
}
}
],
eventRender: function (event, element) {
if (event.icon) {
element.find(".fc-title").prepend("<i class='fa fa-" + event.icon + "'></i>");
}
},
eventRender: function (eventObj, $el) {
$el.popover({
title: eventObj.title,
content: eventObj.description,
trigger: 'hover',
placement: 'top',
container: 'body'
});
},
});
});```
您有两个单独的 eventRender 函数...这不会起作用。当您像这样列出 fullCalenadar 的选项时,您正在定义一个包含大量命名属性的 JS 对象 - 每个选项一个。
按照标准的 JS 行为,如果您在一个对象中指定相同的 属性 两次,那是无效的 - 它只是使用您写的最后一个。 属性对象中的名称必须是唯一的,否则代码无法区分它们。
所以您需要做的就是将单独的 eventRender 选项合并为一个:
eventRender: function (eventObj, $el) {
if (eventObj.icon) {
$el.find(".fc-title").prepend("<i class='fa fa-" + eventObj.icon + "'></i>");
}
$el.popover({
title: eventObj.title,
content: eventObj.description,
trigger: 'hover',
placement: 'top',
container: 'body'
});
},