[fullcalendar]让 listMonth 显示比月份更多的详细信息

Posted

技术标签:

【中文标题】[fullcalendar]让 listMonth 显示比月份更多的详细信息【英文标题】:[fullcalendar]Have listMonth display more details than month 【发布时间】:2018-01-01 16:17:38 【问题描述】:

我想用不同的视图显示不同的事件信息。

在视图“月”中,我只想显示最必要的数据,例如“标题”。

但在视图“listMonth”中,我想显示有关事件的其他信息。

我尝试了以下方法,但不知道为什么在 listMonth 视图中这不会更改事件的标题。

$("#calendar").fullCalendar(
  views: 
    listMonth: 
      buttonText: 'list',
      displayEventTime: true
    
  ,
  events: [
    title: 'event1',
    id: '1',
    start: '2018-01-13T11:00:00',
    end: '2018-01-13T15:00:00',
    addtlTitle: 'event1, where, what, how'
  ],
  eventRender: function(event, element, view) 
    if (view.name == "listMonth") 
      event.title = event.addtlTitle;
    
  
);

【问题讨论】:

通常答案是通过编写一些代码来做到这一点!但是您肯定不能指望我们为您编写代码,尤其是基于如此模糊的描述 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask。 其实,我对我的问题做了一些研究,发现了这个提示:***.com/questions/9410576/… 但是渲染根本没有效果。我被困住了,只是在寻找一些额外的例子。我已将给定链接中的代码添加到我的脚本中,虽然它运行没有错误,但它也不会更改视图“listMonth”中的 event.title... 这是我在脚本中实际放入的内容: $("#calendar").fullCalendar( [...] views: listMonth: buttonText: 'list', displayEventTime: true ,[...] 事件:[ title:'event1',id:'1',开始:'2018-01-13T11:00:00',结束:'2018-01-13T15:00:00 ', addtlTitle: 'event1, where, what, how' ], eventRender: function(event, element, view) if (view.name == "listMonth") event.title=event.addtlTitle; ); );不知道在 listMonth 视图中这不会改变事件的标题。欢迎任何提示... 【参考方案1】:

根据文档 (https://fullcalendar.io/docs/event_rendering/eventRender/),当 eventRender 运行时,它已经创建了要添加到日历中的 html 元素。这在回调中作为“元素”参数提供。在这个阶段修改“事件”对象没有任何效果 - 它只是在那里你可以访问事件的更多属性,以改变 HTML 元素。

相反,您必须检查该视图类型中呈现事件的 HTML 结构,并确定要更改的内容。在这种情况下,代码非常简单:

eventRender: function( event, element, view ) 
  if (view.name == "listMonth")
  
     element.find('.fc-list-item-title').html(event.addtlTitle);
  
, 

查看这里的工作演示:http://jsfiddle.net/sbxpv25p/81/

【讨论】:

非常感谢阿迪森!我试图在 Alexxus 的帖子上留下我的 Q,但作为一个新手,我不允许这样做。我必须承认,作为非母语人士,我时不时地让我不确定,但我有一种感觉,我在这里遗漏了一些明显的东西。所以,再次,非常感谢 - 你的代码就像一个魅力! 附带说明,我在哪里可以找到有关“.fc-list-item-title”等属性的文档?它们似乎没有包含在 fullcalendar.io 上的文档中... 它们不是属性,它们是 fullCalendar 装饰它创建的 HTML 元素的类名(大概是为了操纵它们并赋予它们有意义的标识和样式)。严格来说,它们是内部的东西(因此没有记录),并且在 fullCalendar 升级时可能会发生变化,但就尝试操纵事件的 HTML 而言,这是最好的。使用的 HTML 和类在不同类型的视图之间也有所不同(不可避免地),这是一个额外的复杂因素。

以上是关于[fullcalendar]让 listMonth 显示比月份更多的详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何让 FullCalendar 在移动设备上工作?

如何让 FullCalendar 显示来自我的 JSON 提要的信息?

无法使FullCalendar事件源以不同颜色显示

FullCalendar 插件 dayClick 不工作

Fullcalendar 事件侵入周视图的底行

fullcalendar V4 dayClick没有开火