将字体真棒图标添加到完整的日历标题

Mat*_*aud 12 wordpress jquery fullcalendar font-awesome

我正在使用wordpress,强大的表单和完整的日历来创建一个定制的日历解决方案

我有一切工作,除了我想在日历中每个标题的前面添加一个字体真棒图标.

如果我在标题中添加任何html,如下面的代码,我只看到打印的代码,而不是最终的结果.

$('#calendar').fullCalendar({
    events: [
        {
            title  : '<i class="fa fa-asterisk"></i>event1',
            start  : '2010-01-01'
        },
        {
            title  : 'event2',
            start  : '2010-01-05',
            end    : '2010-01-07'
        },
        {
            title  : 'event3',
            start  : '2010-01-09T12:30:00',
            allDay : false // will make the time show
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

你们有没有人能指出我正确的方向?:-)

问候

马特

ces*_*are 36

您可以在eventRender函数中修改标题前置font-awesome图标.

我添加了一个带有键图标的选项:如果定义了图标,则在eventRender函数中添加fontawesome图标.

检查此示例:

$('#calendar').fullCalendar({
  events: [
    {
        title  : 'event1',
        start  : '2015-10-01',
        icon : "asterisk" // Add here your icon name
    },
    {
        title  : 'event2',
        start  : '2015-10-05',
        end    : '2015-10-07'
    },
    {
        title  : 'event3',
        start  : '2015-10-09T12:30:00',
        allDay : false // will make the time show
    }
],
eventRender: function(event, element) {
     if(event.icon){          
        element.find(".fc-title").prepend("<i class='fa fa-"+event.icon+"'></i>");
     }
  }        
})
Run Code Online (Sandbox Code Playgroud)


Han*_*ter 7

使用 fullcalendar V4,我的渲染看起来像这样

以 $ICON 作为占位符的 json 标题:

{
  start: date
  title: '$ICON custom_name'
  img: 'fontawesome-icon-name'
}
Run Code Online (Sandbox Code Playgroud)
eventRender: function(info) {
  info.el.innerHTML = info.el.innerHTML.replace('$ICON', "<em class='far fa-"+info.event.extendedProps.img+"'></em>");
}
Run Code Online (Sandbox Code Playgroud)

编辑:使用 fullcalendar 5.xx,我的方法有点不同,因为我只在前面添加图标,所以我不再需要 $ICON 占位符。

{
  start: date
  title: '$ICON custom_name'
  img: 'fontawesome-icon-name'
}
Run Code Online (Sandbox Code Playgroud)

干杯汉内斯


小智 5

Full Calendar 4.4 也有同样的问题。我尝试使用 S.Poppic 的代码

eventRender: function (info) {
  let icon = info.event.extendedProps.icon;
  let title = $(info.el).first('.fc-title-wrap');
  if (icon !== undefined) {
    title.prepend("<i class='" + info.event.extendedProps.icon + "'></i>");
  }
}
Run Code Online (Sandbox Code Playgroud)

它有一个小问题: .fc-title-wrap 删除了“时间”

然后我从这里看到另一个答案指向类“.fc-title”并且它有效,但不适用于 FullCalendar 4.4 中的列表视图

我使用了以下代码,它对我有用,用于月视图、周视图、日视图和列表视图。

如您所见,它基于我在此处找到的一些答案。希望能帮助到你。

 eventRender: function (info) {            
        let icon = info.event.extendedProps.icon;
        // this works for Month, Week and Day views
        let title = $(info.el).find('.fc-title');
        // and this is for List view
        let title_list = $(info.el).find('.fc-list-item-title a');

        if (icon) {
            var micon = "<i class='" + icon + "'></i>&nbsp";
            title.prepend(micon);
            title_list.prepend(micon);
        } 
  }
Run Code Online (Sandbox Code Playgroud)