javascript - 在 FullCalendar 问题中设置默认点击选择突出显示

标签 javascript jquery calendar fullcalendar

我使用的是全日历,网格设置为 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 方法(请参阅文档),并在内部使用 fullcalendar select 方法进行自己的选择(再次参阅文档)。 你可以使用 dayClick 的 'date' 参数作为选择的统计时间,并通过添加 1h 获得结束时间。 上面的效果是,点击指定日期,您将从点击的单元格中选择时长为 1 小时的内容。 希望这会有所帮助,如果您需要更具体的建议,请告诉我(我最近花了很多时间在 fullcalendar 中处理这类问题)

关于javascript - 在 FullCalendar 问题中设置默认点击选择突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040403/

相关文章:

javascript - Javascript 中数学对象的速度

javascript - 在点击再次起作用之前需要点击才能走完全程

php - 使用 onclick 方法获取 $this 行并填充 Web 表单

javascript - Jquery对象列表获取列表,其中id大于给定id?

javascript - 从移动平台上的浏览器中向日历添加事件

javascript - 单击即可更改背景图像

javascript - Ext.js DataGrid 选项卡导航在 RTL 模式下无法正常工作

javascript - Promise 处理程序 (.then/.catch/.finally) 总是异步的吗?

outlook - 通过 Microsoft Outlook 日历 API 从重复事件中获取排除日期

c# - 如何在 WPF 工具包日历控件中绑定(bind) BlackoutDates?