JavaScript/FullCalendar-将事件附加到事件呈现

JavaScript/FullCalendar-将事件附加到事件呈现,javascript,events,fullcalendar,Javascript,Events,Fullcalendar,我的完整代码如下: 我有一个FullCalendar的实例,使用event对象的“className”属性,我在日历呈现后向某些事件添加图标。这些简单图标指示日历上的作业(事件)是否已发货 $(window).load(function(){ $('a.shipped div span').prepend("<img src=\"/img/truck_white.png\" title=\"Shipped\" alt=\"Shipped\" style=\"padding:2px 5px

我的完整代码如下:

我有一个FullCalendar的实例,使用event对象的“className”属性,我在日历呈现后向某些事件添加图标。这些简单图标指示日历上的作业(事件)是否已发货

$(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\" />");});
$(窗口).load(函数(){
$('a.shipped div span')。前缀(“”;});
这太棒了!问题是,每当我更改视图时,比如更改月份然后返回,FullCalendar都会完全重新呈现事件!这意味着它们现在没有我的图标,因为我的图标添加过程只在初始渲染后发生一次

每次FullCalendar呈现事件时,我都需要启动图标添加过程

我发现了这一点:但不幸的是,我的even是由PHP写入页面的,所以就脚本而言,它们是静态定义的。这个例子让我相信,我只能通过外部数据源来实现这一点。无可否认,这种级别的JavaScript不是我的强项

如果我的事件数据是静态定义的,那么如何将我的图标添加过程附加到每次Fullcalendar呈现事件时触发的事件?

谢谢

编辑我发现了如何使用eventRender执行我想要的操作,但我似乎无法引用我想要引用的元素部分,因为现在渲染稍微关闭了。我将进一步研究这个问题,并在找到答案后更新


编辑2已经搞定了,因为我是新来的,所以无法发布答案。明天将发布答案。

解决方案是使用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);
}
}
eventRender:function(事件,元素){
如果(event.className=='shipped'){
var find='';
var replace=find+'';
var newHTML=$(element.html().replace(查找,替换);
$(element).html(newHTML);
}
}

查找/替换有点复杂,但它可以工作。

解决方案是使用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);
}
}
eventRender:function(事件,元素){
如果(event.className=='shipped'){
var find='';
var replace=find+'';
var newHTML=$(element.html().replace(查找,替换);
$(element).html(newHTML);
}
}
查找/替换有点复杂,但它可以工作