【问题标题】:JavaScript/FullCalendar - Attaching event to event renderingJavaScript/FullCalendar - 将事件附加到事件呈现
【发布时间】:2013-03-20 19:57:49
【问题描述】:

我的完整代码在这里:http://pastebin.com/nctMtX9m

我有一个 FullCalendar 实例,并使用事件对象的“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\" />");});

这很好用!问题是每当我改变视图时,比如改变月份然后回来,FullCalendar 完全重新呈现事件!这意味着他们现在没有我的图标,因为我的图标添加过程只发生一次,在初始渲染之后。

我需要在每次 FullCalendar 呈现事件时触发我的图标添加过程。

我发现了这个:http://arshaw.com/fullcalendar/docs/event_data/events_function/ 但不幸的是,我的偶数是由 PHP 写入页面的,因此就脚本而言,它们是静态定义的。这个例子让我相信我只能使用外部数据源来做到这一点。这个级别的 JavaScript 诚然不是我的强项。

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

谢谢!

edit 我发现了如何使用 eventRender 执行我想要的操作,但我似乎无法引用我想要的元素部分,因为现在渲染稍微偏离了。当我找到答案时,我会进一步研究并更新。

edit 2 想通了,无法发布答案,因为我是新手。明天会发布答案。

【问题讨论】:

    标签: javascript events fullcalendar


    【解决方案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);
    }
    }
    

    查找/替换有点复杂,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      相关资源
      最近更新 更多