1

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

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

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

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

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

4

3 回答 3

0

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

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

这有帮助吗?

于 2012-11-16T20:03:46.890 回答
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');
于 2012-11-17T09:12:30.653 回答
0

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

event = $('#full-calendar').fullCalendar('clientEvents', event_id)
event.color = 'red'
$('#full-calendar').fullCalendar('updateEvent', event)
于 2015-04-07T12:08:09.273 回答