javascript - 全日历 | 在列表视图中更改 fc-event-dot 的颜色
问题描述
我正在使用完整的日历,并且我将defaultView设置为listMonth,如下所示:
var events= [... this.events,
{
"title": "a title"
"start": "a date",
type: "X"
},
{
"title": "a title 2"
"start": "a date 2",
type: "Y"
}
];
$("#calendar").fullCalendar({
...
defaultView: "listMonth",
eventRender: function (event, element) {
if(event.type=="X")
$(".fc-event-dot").css('background-color', '#2a7568 !important'); //does nothing
if(event.type=="Y")
$(".fc-event-dot").css('background-color', '#fff!important'); //does nothing
}
});
我怎样才能改变点的颜色?
解决方案
$(".fc-event-dot").css(....
不会按您的预期工作,即使它完全可以工作,因为$(".fc-event-dot")
目标是所有点(即具有该类的所有元素),而不仅仅是针对正在呈现的特定事件的点。它不起作用,因为这些元素还没有被渲染。每个点仅存在于element
提供给 eventRender 回调的对象中。FullCalendar 尚未将事件及其组成元素添加到 DOM - 只有在 eventRender 调用完成时才会发生,因此您有机会在将外观绘制到日历上之前对其进行修改。
因此,您必须通过在element
. 幸运的是,jQuery 提供了一种简单的方法,使用以下.find()
函数:
eventRender: function(event, element) {
if (event.type == "X")
element.find(".fc-event-dot").css('background-color','#08b394');
if (event.type == "Y")
element.find(".fc-event-dot").css('background-color','#2a7568');
},
工作演示:https ://codepen.io/ADyson82/pen/MWwXbVK?editable=true&editors=001
推荐阅读
- swift - 如何显示 wifi 设置弹出通知。如何在应用程序中获取可用的 wifi 列表
- xml - 在 XSLT 代码中从 csv 读取空值而不移动单元格值
- android - 如何使用文件的路径获取 mp3 文件的详细信息,如 Android 中的名称或艺术家?
- c++ - 为什么 std::unordered_set 比 std::set 慢?
- regex - 正则表达式 - 匹配具有相同限定符的 2 个组
- javascript - SVG 蒙面进度条
- android - 我们如何将整个 React Native 应用程序包装在另一个 React Native 应用程序中?
- html - 使用 iframe 播放视频时全屏无法正常工作
- python - 如何将列表转换为列表列表?
- javascript - 是否可以同时在不同模型上使用猫鼬函数 find() ?