FullCalendar - 显示不同的信息

时间:2012-02-23 09:48:41

标签: php javascript jquery fullcalendar

问题是:

如何显示(代码内部更改内容)以在周视图和日视图f.ex中显示不同的信息:

周视图 - 时间,标题

日视图 - 时间,标题,描述等。

和形式:月视图 - 时间,标题

3 个答案:

答案 0 :(得分:3)

ppumkin的解决方案可能有用,但它非常hacky,所以我想,我会发布更好的一个:

$("#calendar").fullCalendar({
    events: [
      {
        start: "2010-01-05",
        end: "2010-01-07",
        title: "event info",
        advancedTitle: "advanced event info"
      }
    ],
    eventRender: function(event, element, view){
      if(view.name == "agendaDay")
      {
        event.title = event.advancedTitle;
      }
    }
});

在事件对象中,您可以指定非标准字段,例如“advancedTitle”,其中包含高级事件信息。 然后在eventRender回调函数中,您可以轻松地将标题切换为所需视图的“advancedTitle”。

希望,这有助于某人:)

答案 1 :(得分:2)

在全球JS声明中,

var currentView;

在fullCalendar的构造函数中有viewDisplay触发器,使用此代码。

          viewDisplay: function(view) {
                                //This is very ugly way to change events on switch... but it works!
                                //Every time you you use 'gotoDate' this will trigger, also pressing next, previous

                                if (view.name != currentView) {
                                    if ( view.name == 'basicWeek' )   
                                      { 
                                          $('#myDateSelector').hide();
                                          $('#calendar').fullCalendar( 'removeEventSource', 'json_day.php' ); 
                                          $('#calendar').fullCalendar( 'addEventSource', 'json_week.php' );  
                                          console.log("week");
                                      }
                                     if (view.name == 'basicDay' ) 
                                      { 
                                          $('#myDateSelector').show();
                                          $('#calendar').fullCalendar( 'removeEventSource', 'json_week.php' );
                                          $('#calendar').fullCalendar( 'addEventSource', 'json_day.php' );   
                                          console.log("day");
                                      }
                                      //You can use it some where else to know what view is active quickly
                                      currentView = view.name;
                                  }
                    },

代码非常hacky,但它比挖掘日历的源代码要好得多。您必须记住添加和删除任何Feed,通常您会注意到您的Feed开始重复..这意味着某处删除了删除。

答案 2 :(得分:0)

我之前在另一个问题上发布了这个

查看此链接

http://arshaw.com/fullcalendar/docs/text/titleFormat/

您可以通过此

指定要编辑的视图

http://arshaw.com/fullcalendar/docs/views/View_Option_Hash/

所以你可能会有类似的东西

titleFormat: {

day: 'dddd, d MMM, yyyy'   //whatever date format you want here
month: 'MMMM yyyy',                            
week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}"
}