我想在我的日历中显示 15 分钟的 slotMinutes。但这不起作用。它在这个 fiddle 上运行良好
$(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');
}
});
要访问 Fiddle,请单击 http://jsfiddle.net/mccannf/AzmJv/16/ ...但是,它不适用于 mine , 我究竟做错了什么?
最佳答案
您正在将 v1 fiddle 与 v2 fiddle 进行比较。
在 v2 中没有 slotMinutes
。相反,您应该使用 slotDuration
( see the docs ),应将其设置为:
slotDuration: '00:15:00'
这是更新后的jsfiddle .
编辑:在垂直轴上为每个时间段添加描述
上一个 fiddle 显示 15 分钟时段,但垂直轴只有小时(例如上午 6 点、上午 7 点等)。
如果你希望纵轴有所有的时间段(6am、6:15am、6:30am、6:45am),可以查看fullcalendar.js
第5780行的源代码(版本 2.1.1)其中有一个名为 slatRowHtml
的函数。
在此函数中,使用以下条件来写入时间:!slotNormal || !分钟
,其中:
var slotNormal = this.slotDuration.asMinutes() % 15 === 0;
minutes = slotDate.minutes();
因此,slotNormal
始终为 true(我们设置了 15 分钟时间段),分钟
将为 0
、15
、30
和 45
。由于条件为负 (!slotNormal || !minutes
),这意味着 !slotNormal
始终为 false
且 !months
仅当 分钟 = 0
时才为 true,这就是仅显示小时的原因。
要解决此问题,您有两种选择,每种选择都有其怪癖:
- 设置
slotNormal = '00:15:01'
。使用此值时,slotNormal
将为 false,并且所有插槽都会有描述。这样做的问题是,您要向每个时间段添加一秒,这意味着,当 fullcalendar 打印3pm
时,它将是3:01pm
,因为添加秒数。您可以check this JSFiddle . - 从源代码中删除整个条件并保留
slotDuration = '00:15:00'
。这可行,但您需要记住每次更新 FullCalendar 时检查条件,
关于jquery - 全日历 slotMinutes 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866619/