2013-03-20 59 views
1

我完整的代碼是在這裏:http://pastebin.com/nctMtX9m的JavaScript/FullCalendar - 重視事件,事件導致

我有FullCalendar的一個實例,並使用事件對象的「類名」屬性,我添加圖標日曆呈現後的某些事件。這些簡單的圖標指示日曆上的作業(事件)是否已發貨。

$(window).load(function(){ 
$('a.shipped div span').prepend("<img src=\"/img/truck_white.png\" title=\"Shipped\" alt=\"Shipped\" style=\"padding:2px 5px 5px 0; width=\"16\" height=\"16\" />");}); 

This works great!問題是,無論何時我改變視圖,比如改變月份然後回來,FullCalendar都會重新渲染事件!這意味着它們現在沒有我的圖標,因爲我的圖標添加過程僅在初始渲染後發生一次。

每當FullCalendar呈現事件時,我都需要添加圖標添加過程。

我找到了這個:http://arshaw.com/fullcalendar/docs/event_data/events_function/,但不幸的是我的平臺是通過PHP寫入頁面的,所以它們在腳本方面是靜態定義的。這個例子讓我相信我只能用外部數據源來做到這一點。誠然,這個級別的JavaScript並不是我的特長。

如何將我的圖標添加過程附加到每次觸發的事件Fullcalendar呈現事件(如果我的事件數據是靜態定義的)?

謝謝!

編輯我發現如何使用eventRender做我想做的事情,但我似乎無法引用我想要的元素部分,因爲現在渲染稍微偏離了。當我找到答案時,我會進一步研究並更新。

編輯2想通了,因爲我是新的不能發佈答案。明天會發布答案。

回答

1

解決方案是使用eventRender。

eventRender: function(event, element) { 
if(event.className == 'shipped'){ 
    var find = '<span class="fc-event-title">'; 
    var replace = find + '<img src="/img/truck_white.png" title="Shipped" alt="Shipped" class="event_icon" />'; 
    var newHTML = $(element).html().replace(find, replace); 
    $(element).html(newHTML); 
} 
} 

這是一個複雜的查找/替換,但它的作品。

相關問題