根据事件标题Fullcalendar 4更改背景颜色

问题描述 投票:1回答:1

我正在尝试更改fullcalendar v4的事件(在日视图中)的背景颜色。我花了好几个小时试图实现eventRender,但没有用。这让我找到了其他的解决方法,但是现在,我正在罢工!

我想弄清楚这里解释的解决方案:[Fullcalendar - change event color based on value ..

但是,每次搜索“是”一词都为TRUE时,我在chrome控制台中收到一条错误,说“解析JSON失败”。如果我将搜索查询更改为将创建“false”的内容,我不会收到此错误。对我来说,这意味着搜索正在运行,但事件呈现功能以某种方式失败。

我的代码:

    document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');

var calendar = new FullCalendar.Calendar(calendarEl, {
  plugins: [ 'interaction', 'resourceDayGrid', 'resourceTimeGrid' ],
  defaultView: 'resourceTimeGridDay',
  defaultDate: '<?php echo $startdate?>',
  validRange: {
    start: '<?php echo $startdate?>',
    end: '<?php echo $maxdaycal?>'
    },
  height: 700,

...    
...

eventSources: [
            {
            url: 'getevents2.php?festid=<?php echo $festid?>&room=<?php echo $roomabv?>',
            cache: false,
            },
            {
            url: 'getbreaks2.php?festid=<?php echo $festid?>&room=<?php echo $roomabv?>',
            cache: false,
            color: 'grey',
            editable: false,
            }            
        ],
eventRender: function(info) {
      if(info.event.extendedProps.desc == "yes") {
      element.style.css('background-color', '#000');
      }
},
....
    });

calendar.render();


});

我的目标:在元素的标题中搜索单词“Accomp”(可能在info.event.title中)..并将背景更改为不同的颜色..如红色......或其他东西。

我也尝试在这个字段中显示一个图标,如果存在单词Accomp,但是 - 我必须以模态显示它,因为我无法让eventrender显示html。

我认为这是因为FC v4的差异......但我不确定。

我也尝试过:[Is it possible to assign the background colour of a FullCalendar event based on its title? ..但我也无法解决这个问题。

更新:搜索功能正在运行,我可以在控制台日志中看到它,但每当我尝试设置css时,日历都不会呈现。

          eventRender: function(info) {
          console.log(info.event.title);
            if(-1 != info.event.title.indexOf("Accomp")) {
            console.log(info.event.title);
                fc-title.css('background-color', '#000');
            }
        },
fullcalendar fullcalendar-scheduler fullcalendar-4
1个回答
1
投票

这是基于其他一些可用的答案,但似乎FC4存在差异......这对我有用!

  eventRender: function(info) {
        if(-1 != info.event.title.indexOf("Accomp")) {
            info.el.style.backgroundColor  = "red";
        }
    },
© www.soinside.com 2019 - 2024. All rights reserved.