在具有完整日历功能的事件框中设置每种不同的颜色

2024-01-25

我在完整日历功能中设置每个事件框中的颜色时遇到问题。目前,我只能在 fc-daygrid-event-dot 中设置。我可以知道如何设置每个事件框中的背景颜色吗?

下面是我的编码:

 document.addEventListener('DOMContentLoaded', function() {
    // titleFormat: 'MMMM D, YYYY' 
    var calendarEl = document.getElementById('calendar');
    var calendar = new FullCalendar.Calendar(calendarEl, {
      headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay'
      },
      initialDate: '2021-04-25',
      navLinks: true, // can click day/week names to navigate views
      selectable: true,
      selectMirror: true,
      
      
      select: function(arg) {
      $('#createEventModal #startTime').val(arg.start);
      $('#createEventModal #endTime').val(arg.end);
      $('#createEventModal #when').text(arg.start);
      $('#createEventModal').modal('toggle');
    },
      eventClick: function(arg) {
        if (confirm('Are you sure you want to delete this event?')) {
          arg.event.remove()
        }
      },
      editable: true,
      dayMaxEvents: true, // allow "more" link when too many events
      events: <?php echo json_encode($myArray); ?>
    });
    calendar.render();   
  });

这是我的json_encode($myArray); data:

[{"title":"All Day Event","start":"2016-01-01 00:00:00","color":"#40E0D0"},{"title":"Long Event","start":"2016-01-07 00:00:00","color":"#FF0000"},{"title":"Repeating Event","start":"2016-01-09 16:00:00","color":"#0071c5"},{"title":"Conference","start":"2016-01-11 00:00:00","color":"#40E0D0"},{"title":"Meeting","start":"2016-01-12 10:30:00","color":"#000"},{"title":"Lunch","start":"2016-01-12 12:00:00","color":"#0071c5"},{"title":"Happy Hour","start":"2016-01-12 17:30:00","color":"#0071c5"},{"title":"Dinner","start":"2016-01-12 20:00:00","color":"#0071c5"},{"title":"Birthday Party","start":"2016-01-14 07:00:00","color":"#FFD700"},{"title":"Double click to change","start":"2016-01-28 00:00:00","color":"#008000"},{"title":"13245132","start":"2021-03-31 00:00:00","color":"undefin"},{"title":"asfsa","start":"2021-04-01 00:00:00","color":"undefin"},{"title":"52115","start":"2021-04-01 00:00:00","color":"undefin"},{"title":"624","start":"2021-04-01 00:00:00","color":"undefin"},{"title":"512","start":"2021-04-04 00:00:00","color":"#FF0000"},{"title":"21512","start":"2021-04-06 00:00:00","color":"#FF0000"},{"title":"236234","start":"2021-04-07 00:00:00","color":"#FF0000"},{"title":"3521","start":"2021-04-03 00:00:00","color":"#00FF00"},{"title":"HHH","start":"2021-04-02 00:00:00","color":"#FFFF00"},{"title":"test","start":"2021-03-30 00:00:00","color":"#378006"},{"title":"asfsa","start":"2021-03-28 00:00:00","color":"#378006"},{"title":"ok","start":"2021-03-29 00:00:00","color":"#378006"},{"title":"ok","start":"2021-04-01 00:00:00","color":"#378006"},{"title":"ok","start":"2021-03-31 00:00:00","color":"#378006"},{"title":"555","start":"2021-04-16 00:00:00","color":"#378006"},{"title":"asfsa","start":"2021-03-28 00:00:00","color":"#FF0000"}]

现在我的结果如下图所示,每种颜色都可以显示在点中:

实际上,我想要预期的结果,如下示例图片所示:

我尝试过的: i)我尝试将颜色更改为背景颜色json_encode($myArray);数据,但仍然无法工作。

斯瓦蒂结果:


您可以使用事件已挂载 https://fullcalendar.io/docs/event-render-hooks您可以使用其中的事件.each循环遍历 json 数组,然后我们需要获取td添加事件的地方。

现在,如果你看看动态生成的td你会找到data-date属性,因此使用此属性,那么同一日期可以有两个或多个事件,因此您可以使用title从你的 json 数组中获取 key 并检查里面是否有这个值fc-event-titlediv 或最后不使用.closest(".fc-daygrid-event-harness")并更改该 div 的背景颜色。

演示代码 :

//suppose this is array
var arrays = [{
  "title": "All Day Event",
  "start": "2016-01-01 00:00:00",
  "color": "#40E0D0"
}, {
  "title": "Long Event",
  "start": "2016-01-07 00:00:00",
  "color": "#FF0000"
}, {
  "title": "Repeating Event",
  "start": "2016-01-09 16:00:00",
  "color": "#0071c5"
}, {
  "title": "Conference",
  "start": "2016-01-11 00:00:00",
  "color": "#40E0D0"
}, {
  "title": "Meeting",
  "start": "2016-01-12 10:30:00",
  "color": "#000"
}, {
  "title": "Lunch",
  "start": "2016-01-12 12:00:00",
  "color": "#0071c5"
}, {
  "title": "Happy Hour",
  "start": "2016-01-12 17:30:00",
  "color": "#0071c5"
}, {
  "title": "Dinner",
  "start": "2016-01-12 20:00:00",
  "color": "#0071c5"
}, {
  "title": "Birthday Party",
  "start": "2016-01-14 07:00:00",
  "color": "#FFD700"
}, {
  "title": "Double click to change",
  "start": "2016-01-28 00:00:00",
  "color": "#008000"
}, {
  "title": "512",
  "start": "2021-04-04 00:00:00",
  "color": "#FF0000"
}, {
  "title": "21512",
  "start": "2021-04-06 00:00:00",
  "color": "#FF0000"
}, {
  "title": "236234",
  "start": "2021-04-07 00:00:00",
  "color": "#FF0000"
}, {
  "title": "3521",
  "start": "2021-04-03 00:00:00",
  "color": "#00FF00"
}, {
  "title": "HHH",
  "start": "2021-04-02 00:00:00",
  "color": "#FFFF00"
}, {
  "title": "test",
  "start": "2021-03-30 00:00:00",
  "color": "#378006"
}, {
  "title": "43",
  "start": "2021-03-28 00:00:00",
  "color": "#378006"
}, {
  "title": "ok",
  "start": "2021-03-29 00:00:00",
  "color": "#378006"
}, {
  "title": "o2k",
  "start": "2021-04-01 00:00:00",
  "color": "#378006"
}, {
  "title": "ok3",
  "start": "2021-03-31 00:00:00",
  "color": "#378006"
}, {
  "title": "5553",
  "start": "2021-04-16 00:00:00",
  "color": "#378006"
}, {
  "title": "asfsa",
  "start": "2021-03-28 00:00:00",
  "color": "#FF0000"
}]

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

  var calendar = new FullCalendar.Calendar(calendarEl, {
    headerToolbar: {
      left: 'prev,next today',
      center: 'title',
      right: 'dayGridMonth,timeGridWeek,timeGridDay'
    },
    initialDate: '2021-04-25',
    navLinks: true, // can click day/week names to navigate views
    selectable: true,
    selectMirror: true,
    eventDidMount: function(view) {
      //loop through json array
      $(arrays).each(function(i, val) {
        //find td->check if the title has same value-> get closest daygird ..change color there
        $("td[data-date=" + moment(val.start).format("YYYY-MM-DD") + "] .fc-event-title:contains(" + val.title + ")").closest(".fc-daygrid-event-harness").css("background-color", val.color);
      })
    },
    select: function(arg) {
      $('#createEventModal #startTime').val(arg.start);
      $('#createEventModal #endTime').val(arg.end);
      $('#createEventModal #when').text(arg.start);
      $('#createEventModal').modal('toggle');
    },
    eventClick: function(arg) {
      if (confirm('Are you sure you want to delete this event?')) {
        arg.event.remove()
      }
    },
    editable: true,
    dayMaxEvents: true,
    events: arrays //pass array here
  });

  calendar.render();


});
.fc-event-title {
  color: white
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected] /cdn-cgi/l/email-protection/main.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected] /cdn-cgi/l/email-protection/main.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<div id='calendar'></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在具有完整日历功能的事件框中设置每种不同的颜色 的相关文章

随机推荐

  • 应用重力的宝石镶嵌位板

    我正在尝试用位板制作一个宝石迷阵级联模拟器 到目前为止 我已经能够检测并移除火柴 但现在我需要让珠宝掉下来 我的状态由一系列位板表示 每个位板对应一种宝石 我有一张所有被移除的珠宝的面具 是否可以使用一些按位魔法来做到这一点 两个初始位板的
  • aws 负载均衡器未向实例注册

    I use kubeadm启动集群AWS 我可以成功创建负载均衡器AWS通过使用kubectl 但负载均衡器未向任何 EC2 实例注册 这会导致公共无法访问该服务的问题 从观察来看 ELB创建时 在所有子网下都找不到健康的实例 我很确定我正
  • 如何衡量用户桌面应用程序的使用情况? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我用 c NET 3 5 编写了一个
  • 新的核心数据实体与现有核心数据实体相同:单独的实体还是其他解决方案?

    概述 我正在设计一个餐厅管理应用程序 并且有一个名为 Order 的实体 其中包含 Items 由于一家餐厅可以运营多年 拥有数千个已完成的 订单 并且为了使我的应用程序的网络方面更容易并保持数据库快速运行 我想引入 ClosedOrder
  • 将 pcm 加载到 AVAudioPCMBuffer 中

    我有这个代码 func loadSoundfont pitch String let path String Bundle main path forResource self id pitch ofType f32 let url URL
  • MUI TextField sx props 不应用样式

    我正在尝试使用一次性方式设置 TextField 组件的样式sx prop
  • 启动时结构崩溃

    我的应用程序在 onCreate 函数内的这一行崩溃了 Fabric with this new Crashlytics 该设备是 SAMSUNG SM G313 HZ 运行 4 4 2 我已向他们的 Twitter 开发论坛举报 但我的帖
  • 为什么 Microsoft Word 2007 中的 VBA IDE 智能感知不断更改特定变量类型名称的大小写?

    这是我问过的最奇怪的问题 我什至不知道如何表达它 我记得类似的事情早在 VB6 IDE 中就发生过 但我忘记了修复方法 如果是这种情况 那么这就是 VB IDE 中的一个非常古老的错误 问题是这样的 当我不小心输入时 我正在编写一个简单的
  • 用于时间跟踪的 MongoDB 架构设计

    我创建了一个简单的时间跟踪应用程序 人们可以在其中计时 超时并标记休息时间 此跟踪的中心对象是Event产生于User 这与用户状态确保状态管理正确 这是减去的架构更新时间 创建于 fields userId type mongoose S
  • 实体框架在更新实体时表示属性为空

    我正在尝试将新实体添加到现有集合中 但是 当这样做时 父 实体抱怨其他导航属性为空 尽管它们不是 Error 类型异常 发生 System Data Entity Validation DbEntityValidationException
  • 使用自组织映射进行降维

    过去几个月我一直在研究自组织映射 SOM 但是我在理解降维部分仍然有些困惑 你能建议任何简单的方法来理解 SOM 在任何现实世界数据集上的实际工作吗 就像来自 UCI 存储库的数据集 好的 首先参考一些之前的相关问题 这将使您更好地理解 S
  • 如何将 AnyEvent::Handler 与具有端口重用的套接字一起使用

    最近我遇到了一个很棒的 Perl 模块 AnyEvent 它允许用户进行异步 事件驱动的编程 创建了以下代码片段 效果很好 我遇到的问题是 在打开和关闭大量套接字后 它很快耗尽了所有客户端端口 netstat ant 显示 20 000 多
  • 如何从 Firebase 中删除数据库?

    这一定是在盯着我的脸 但没有看到命令 如何从新 Firebase 的控制台中删除未使用的 Firebase 数据库 谷歌没有提供答案 这还是第一次 如果您不想删除项目而只想删除数据库 另一种方法是在计算机上创建一个文件empty json像
  • 从 InnerHTML 内的代码隐藏向页面添加 ASP 控件

    我正在尝试从后面的代码向网页添加一个按钮 我的主页上有一个空的 div 在需要时可以打开和关闭 然而 我希望动态创建的内容 因为 div 内容可以根据条件而改变 我意识到在我的 ASP 控件中我使用了 反斜杠 来取消我的 HTML 我现在遇
  • 两对多的数据关系是否应该被视为多对多?

    我有 2 个数据库表 Teams 和 Games 出于此问题的目的 我们正在处理足球队和比赛 每场比赛只有两支球队 通常是主队和客队 但有时两支球队都可以保持中立 我的问题是我是否应该使用 Games 表中的 2 个外键 home team
  • 两个内容提供商访问同一个数据库

    Hi all 我想知道如果希望两个完全不同的 Android 应用程序访问和操作同一个数据库 是否存在一种普遍首选的实现范例值得尊重 是否建议甚至技术上可以这样做 这样的架构会是什么样子 截至目前 我正在考虑让这两个应用程序实现自己的Con
  • WPF 无法从 url 检索 WebP 图像?

    我无法从网址检索图像 以前 在设置 HttpClient 标头之前 我根本无法连接到该站点 我可以从其他来源检索图像 但不能从这个特定来源检索图像 检索图像的代码 var img new BitmapImage img BeginInit
  • C# 中的“this[0]”是什么意思?

    我正在浏览一些库代码并看到如下方法 public CollapsingRecordNodeItemList List get return this 0 as CollapsingRecordNodeItemList 包含此方法的类不是列表
  • 调试时在 Visual Studio 2019 中将代码设置为只读

    当我使用 Visual Studio 2017 时 我的代码是只读的 直到我点击 全部中断 或断点 我很确定这是开箱即用的 无需我更改任何选项 我正在讨论使用 C 和编辑并继续进行 Windows 桌面开发 在 2019 年 我总是能够更改
  • 在具有完整日历功能的事件框中设置每种不同的颜色

    我在完整日历功能中设置每个事件框中的颜色时遇到问题 目前 我只能在 fc daygrid event dot 中设置 我可以知道如何设置每个事件框中的背景颜色吗 下面是我的编码 document addEventListener DOMCo