我正在使用将网格设置为1/2小时间隔的完整日历(slotMinutes设置为30分钟(。我希望默认点击选择至少为 1 小时的事件,但我希望开始时间以 30 分钟为增量。换句话说,我不希望用户能够突出显示任何少于一小时的时间段,但我希望他们能够突出显示从小时或半小时开始的 1 小时时段(即:1:30 - 2:30(。
如果我将 snapMinutes 设置为 60,这将解决第一部分,不让它们突出显示少于 1 小时的任何内容。但是,它不会让用户选择不完全在偶数小时内的 1 小时时段(即:它将允许选择 1:00-2:00 但不允许选择 1:30-2:30(。有什么方法可以实现吗?
这是我正在使用的日历(CoffeeScript(
options = {
defaultView: 'agendaWeek'
defaultEventMinutes: 60
selectable: true
selectHelper: true
eventTextColor: 'black'
allDayDefault: false
header: {
left: 'prev,next today'
center: ''
right: 'title'
}
titleFormat: {
month: 'MMMM yyyy'
week: "MMM d[, yyyy]{ '—'[ MMM] d, yyyy}"
day: 'dddd, MMM d, yyyy'
}
ignoreTimezone: true
slotMinutes: 30
snapMinutes: 60
}
elm.fullCalendar(options)
下面是一个JSFiddle:http://jsfiddle.net/lcrees/9f82c/
我问题的第二部分是我希望能够动态设置上面的默认最小点击选择。从这个问题来看,如果不破坏和重新创建日历,我就无法动态更新 snapMinutes 选项:
https://code.google.com/p/fullcalendar/issues/detail?id=293还有其他建议吗?
罗里尔
如果我理解正确 您的问题 您可以覆盖dayClick方法(请参阅文档(,并在内部使用完整日历选择方法进行自己的选择(再次查看文档(。U可以使用dayclick的"date"参数作为选择的统计时间,并通过添加1h来获得结束时间。上述效果是,在指定日期单击时,您将从单击的单元格中选择长度为1小时。希望这会有所帮助,如果您需要更具体的建议,请告诉我(我最近花了很多时间在全日历中与此类问题作斗争(