FullCalendar 5 - 如何将 Font Awesome 图标添加到事件标题
FullCalendar 5 - How to add Font Awesome icons to an Event title
我正在尝试将 Font Awesome 图标添加到 FullCalendar 5 中的事件。我尝试使用 css:
<script>
window.FontAwesomeConfig = {
searchPseudoElements: true
}
</script>
我在搜索答案时发现了上面的内容,os 放在
之前
<style type="text/css">
css:
.cssItalic {
font-family: "Font Awesome\ 5 Free" !important;
content: "\f55e" !important;
font-style: italic;
font-weight: bold;
text-decoration: underline !important;
text-decoration-thickness: 5px !important;
text-decoration-color: white !important;
}
这个不加图标;但是,其余部分有效(例如,斜体、粗体、下划线)。我也试过 font-family: "Font Awesome 5 Free" !important;和 font-family: "Font Awesome 5 Pro" !important;.
我也试过 eventDidMount:
eventDidMount: function(event, element) {
element.find(".fc-title").prepend("<i class='fa fa-bus-alt'></i>");
},
但是,我在元素上收到控制台错误。注意:我无法让 eventRender 在 FullCalendar 5 中工作。
我一直在研究这个,我想我可能有点 closer:
eventDidMount: function(info) {
console.log(info.event.title);
("info.event.title").prepend("<i class='fa fa-bus-alt'></i>");
},
console.log显示第一个标题。但是,然后我收到控制台日志错误:
Uncaught TypeError: "info.event.title".append is not a function
我也试过不带引号(同样的错误):
(info.event.title).prepend("<i class='fa fa-bus-alt'></i>");
Ben Souchet 提出了这些解决方案:
eventDidMount: function(event, element) {
element.find(".fc-title").prepend("<i class='fa fa-bus-alt'></i>");
},
这在开始时(即时间之前)显示标签(即不是图标):
<i class='fa fa-bus-alt'></i>
Ben 还提供了:
eventDidMount: function(info) {
console.log(info.event.title);
$(info.el + ' .fc-event-title').prepend("<i class='fa fa-bus-alt'></i>");
},
此解决方案在月、周和日视图(见附图)中的时间和标题之间显示不同数量的多个图标,并在列表视图中显示错误。错误是:
Uncaught Error: Syntax error, unrecognized expression: [object HTMLTableRowElement].fc-event-title
根据 Ben Souchet 的回答,我认为:
eventDidMount: function(info) {
console.log(info.event.title);
$(info.el).find('.fc-event-title').prepend("<i class='fa fa-bus-alt' data-toggle='tooltip' title='Test'></i>");
},
我从服务器端的图标中读取的最终答案是:
eventDidMount: function(info) {
var icon = info.event.extendedProps.icon;
if (info.event.extendedProps.icon) {
$(info.el).find('.fc-event-title').prepend("<i class='fa fa-"+icon+"' data-toggle='tooltip' title='Test'></i>");
}
},
我没有使用 fullcalendar
的经验,但我认为您非常熟悉 eventDidMount
。
更新答案:
eventDidMount: function(event, element) {
// Create the icon
let icon = document.createElement("i");
icon.classList.add('fa', 'fa-bus-alt');
// Add icon before the title
element.querySelector(".fc-title").prepend(icon);
},
另见 @Glyn post 的最后一节,看看他最终用什么来显示图标 :)
上一个回答:
eventDidMount: function(info) {
console.log(info.event.title);
info.el.prepend("<i class='fa fa-bus-alt'></i>");
},
文档中指出 el
是 DOM 元素,因此在您的情况下,您需要 prepand
此元素。
我正在尝试将 Font Awesome 图标添加到 FullCalendar 5 中的事件。我尝试使用 css:
<script>
window.FontAwesomeConfig = {
searchPseudoElements: true
}
</script>
我在搜索答案时发现了上面的内容,os 放在
之前<style type="text/css">
css:
.cssItalic {
font-family: "Font Awesome\ 5 Free" !important;
content: "\f55e" !important;
font-style: italic;
font-weight: bold;
text-decoration: underline !important;
text-decoration-thickness: 5px !important;
text-decoration-color: white !important;
}
这个不加图标;但是,其余部分有效(例如,斜体、粗体、下划线)。我也试过 font-family: "Font Awesome 5 Free" !important;和 font-family: "Font Awesome 5 Pro" !important;.
我也试过 eventDidMount:
eventDidMount: function(event, element) {
element.find(".fc-title").prepend("<i class='fa fa-bus-alt'></i>");
},
但是,我在元素上收到控制台错误。注意:我无法让 eventRender 在 FullCalendar 5 中工作。
我一直在研究这个,我想我可能有点 closer:
eventDidMount: function(info) {
console.log(info.event.title);
("info.event.title").prepend("<i class='fa fa-bus-alt'></i>");
},
console.log显示第一个标题。但是,然后我收到控制台日志错误:
Uncaught TypeError: "info.event.title".append is not a function
我也试过不带引号(同样的错误):
(info.event.title).prepend("<i class='fa fa-bus-alt'></i>");
Ben Souchet 提出了这些解决方案:
eventDidMount: function(event, element) {
element.find(".fc-title").prepend("<i class='fa fa-bus-alt'></i>");
},
这在开始时(即时间之前)显示标签(即不是图标):
<i class='fa fa-bus-alt'></i>
Ben 还提供了:
eventDidMount: function(info) {
console.log(info.event.title);
$(info.el + ' .fc-event-title').prepend("<i class='fa fa-bus-alt'></i>");
},
此解决方案在月、周和日视图(见附图)中的时间和标题之间显示不同数量的多个图标,并在列表视图中显示错误。错误是:
Uncaught Error: Syntax error, unrecognized expression: [object HTMLTableRowElement].fc-event-title
根据 Ben Souchet 的回答,我认为:
eventDidMount: function(info) {
console.log(info.event.title);
$(info.el).find('.fc-event-title').prepend("<i class='fa fa-bus-alt' data-toggle='tooltip' title='Test'></i>");
},
我从服务器端的图标中读取的最终答案是:
eventDidMount: function(info) {
var icon = info.event.extendedProps.icon;
if (info.event.extendedProps.icon) {
$(info.el).find('.fc-event-title').prepend("<i class='fa fa-"+icon+"' data-toggle='tooltip' title='Test'></i>");
}
},
我没有使用 fullcalendar
的经验,但我认为您非常熟悉 eventDidMount
。
更新答案:
eventDidMount: function(event, element) {
// Create the icon
let icon = document.createElement("i");
icon.classList.add('fa', 'fa-bus-alt');
// Add icon before the title
element.querySelector(".fc-title").prepend(icon);
},
另见 @Glyn post 的最后一节,看看他最终用什么来显示图标 :)
上一个回答:
eventDidMount: function(info) {
console.log(info.event.title);
info.el.prepend("<i class='fa fa-bus-alt'></i>");
},
文档中指出 el
是 DOM 元素,因此在您的情况下,您需要 prepand
此元素。