Fullcalendar slotMinutes不起作用

时间:2014-09-16 10:40:25

标签: jquery fullcalendar

我想为我的日历显示15的slotMinutes。但它不起作用。它适用于这个小提琴

$(document).ready(function() {

  var calendar = $('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  editable: true,
  slotMinutes: 15,
  selectable: true,
  //header and other values
  select: function(start, end, allDay) {
      endtime = $.fullCalendar.formatDate(end,'h:mm tt');
      starttime = $.fullCalendar.formatDate(start,'ddd, MMM d, h:mm tt');
      var mywhen = starttime + ' - ' + endtime;
      $('#createEventModal #apptStartTime').val(start);
      $('#createEventModal #apptEndTime').val(end);
      $('#createEventModal #apptAllDay').val(allDay);
      $('#createEventModal #when').text(mywhen);
      $('#createEventModal').modal('show');
   }
});

要访问小提琴,请点击http://jsfiddle.net/mccannf/AzmJv/16/ ...但是,它无法在mine上工作,我做错了什么?

2 个答案:

答案 0 :(得分:15)

你正在将v1的小提琴与你的v2小提琴进行比较。

在v2中没有slotMinutes。相反,您应该使用slotDurationsee the docs),应设置为:

slotDuration: '00:15:00'

以下是更新后的jsfiddle

编辑:为垂直轴上的每个时间段添加说明

前一个小提琴显示15分钟的插槽,但垂直轴只有小时(如早上6点,早上7点等)。

如果您希望纵轴具有所有时间段(早上6点,上午6点15分,上午6点半,早上6点45分),您可以查看fullcalendar.js第5780行(2.1.1版)的源代码)有一个名为slatRowHtml的函数。

在此函数中,以下条件用于写入时间:!slotNormal || !minutes,其中:

var slotNormal = this.slotDuration.asMinutes() % 15 === 0;
minutes = slotDate.minutes();

因此,slotNormal始终为真(我们设置了15分钟),minutes将为01530和{{ 1}}。由于条件为负(45),这意味着!slotNormal || !minutes始终为!slotNormalfalse仅在!minutes时为真,这就是为什么只有显示小时数。

要解决此问题,您有两个选项,每个选项都有其怪癖:

  1. 设置minutes = 0。使用此值slotNormal = '00:15:01'将为false,并且所有插槽都将具有描述。这个问题是你要在每个时隙中添加一秒钟,这意味着,当fullcalendar打印slotNormal时,由于添加的秒数,它将是3pm。你可以check this JSFiddle
  2. 从源代码中删除整个条件并保留3:01pm。这将有效,但您需要记住每次更新FullCalendar时检查条件,

答案 1 :(得分:0)

请在 fullcalendar.js

中找到此代码
(h && i ? "" : "<span>" + r(n.format(this.axisFormat)) + "<\/span>")

替换为

(h && i ? "<span>"+i+"</span>" : "<span>" + r(n.format(this.axisFormat)) + "<\/span>")