在 Fullcalendar v5 中使用 css-class 切换事件颜色

Posted

技术标签:

【中文标题】在 Fullcalendar v5 中使用 css-class 切换事件颜色【英文标题】:Toggle Event Color with css-class in Fullcalendar v5 【发布时间】:2020-11-21 06:09:52 【问题描述】:

我想通过添加一个 css 类('click_class')来标记一个点击事件。再次单击该事件应删除“click_class”。 作为一个起点,如果您想在 eventClick 之后向事件添加持久 CSS 类,我想知道应该更改对象中的哪个值?

cl_object = calendar.getEventById( id );
cl_object.setProp('eventClassNames','click_class');
calendar.render();

cl_object.ui.setProp('classNames','click_class');
calendar.render();

两者都不起作用

类在这个事件对象中定义

classNames_arr = cl_object.ui.classNames;

据我所知。

【问题讨论】:

【参考方案1】:

// 可能是这样的

eventClick: function(info) 
    //
    // classNames Object
    classNames_obj = info.event.classNames;
    //
    // Transform into array
    classNames_arr = Object.values(classNames_obj);
    //
    // check, whether the class is here
    if (classNames_arr.includes('click_class'))
        // already here => remove
        classNames_arr = arrayRemove(classNames_arr, 'click_class');
     else 
        //append
        classNames_arr.push('click_class');
    
    // Update fullcalendar event object
    info.event.setProp('classNames',classNames_arr);
,
// Function
function arrayRemove(arr, value)  return arr.filter(function(ele) return ele != value; );

【讨论】:

以上是关于在 Fullcalendar v5 中使用 css-class 切换事件颜色的主要内容,如果未能解决你的问题,请参考以下文章

Fullcalendar v5 仅呈现一个事件提示

FullCalendar v5 通过切换按钮显示/隐藏周末

获取视图信息 Fullcalendar V5

Fullcalendar 语言环境不更改 v5 中的标题栏

编辑事件渲染()后的fullcalendar v5不刷新

Fullcalendar-如何删除和显示已完成的任务