2012-11-16 92 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) 
相關問題