jQuery FullCalendar以编程方式更改事件呈现颜色

时间:2012-11-16 19:28:28

标签: jquery fullcalendar

我正在开发jQuery插件fullcalendar的多用户版本。每个用户都有独特的颜色。您可以在下拉列表中更改用户。因此,我可以为用户现有事件指定颜色。

问题是当您渲染新事件时,初始化时分配给fullCalendar的'eventColor'属性的颜色不会更改。

假设用户1具有例如蓝色事件。我使用'eventColor'蓝色初始化fullCalendar。当我和我更改为具有黄色事件的用户2时,呈现的事件仍显示蓝色事件。从我开始拖动直到我发布活动的那一刻起,我希望活动是黄色的。

我尝试使用$('。calendar')更改事件呈现颜色.fullCalendar('option','eventColor','NEW_COLOR_HERE');但这不起作用。

有人发现自己处于相同的情况并想出了解决方案吗? :)

3 个答案:

答案 0 :(得分:0)

如果您更改全局颜色,请尝试rerenderEvents

但看起来您可能只想设置一个事件的event color属性(例如,来自eventClick),然后调用updateEvent

这有帮助吗?

答案 1 :(得分:0)

function option(name, value) {

        if (value === undefined) {
           return options[name];
        }
        if (name == 'height' || name == 'contentHeight' || name == 'aspectRatio') {
            options[name] = value;
            updateSize();
        }
       // So I added these lines to the plugin and voila, it works like charm!
       if(name == 'eventColor') {
           options[name] = value;
       }
}

通过

在您的脚本中调用它
$('.calendar').fullCalendar('option', 'eventColor', '#NEW_COLOR_HERE');

答案 2 :(得分:0)

以编程方式更改事件颜色的一种方法,首先使用clientEvents检索事件(基于其ID),更改其颜色,最后使用updateEvent重新呈现事件:

event = $('#full-calendar').fullCalendar('clientEvents', event_id)
event.color = 'red'
$('#full-calendar').fullCalendar('updateEvent', event)