2012-11-16 94 views
1

我正在开发一个多用户版本的jQuery插件fullcalendar。每个用户都有独特的颜色。您可以通过下拉菜单更改用户。所以,我可以为用户现有事件分配一个颜色。jQuery FullCalendar以编程方式更改事件渲染颜色

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

假设用户1有例如蓝色事件。我用'eventColor'蓝色初始化fullCalendar。当我更改为有黄色事件的用户2时,呈现的事件仍显示蓝色事件。我希望这个活动从我开始拖动到发布活动的那一刻变成黄色。我试着用$('。calendar')改变事件渲染的颜色。fullCalendar('option','eventColor','NEW_COLOR_HERE');但那不起作用。

任何人发现自己处于相同的情况,并提出解决方案? :)

回答

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'); 
0

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

不过貌似你可能只想设置一个事件的eventcolor属性(比如,从eventClick),然后调用updateEvent

这有帮助吗?

+0

感谢您的快速响应! rerenderEvents不起作用。如果我可以在用户更改时更改全局eventColor,那么效果最好。不应该使用calendarObject.fullCalendar('option','eventColor','#fefefe'); ? 我想出了如何在释放事件并更改renderEvent回调时更改事件颜色。但按住鼠标并拖动事件呈现全局颜色。 – Alexander

0

一个以编程方式更改事件的颜色,首先检索该事件(根据ID)与clientEvents,改变其颜色,最后重新渲染updateEvent

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