Javascript 设置FullCalendar问题中的默认单击选择突出显示

Javascript 设置FullCalendar问题中的默认单击选择突出显示,javascript,jquery,calendar,fullcalendar,Javascript,Jquery,Calendar,Fullcalendar,我使用的是fullcalendar,网格设置为1/2小时间隔(slotMinutes设置为30分钟)。我希望默认的单击选择至少用于1小时的事件,但我希望开始时间以30分钟为增量。换句话说,我不希望用户能够突出显示少于一小时的任何时段,但我希望他们能够突出显示从一小时或半小时开始的1小时时段(即:1:30-2:30) 如果我将snapMinutes设置为60,这将解决第一部分的问题,不允许它们突出显示少于1小时的内容。但是,它不允许用户选择不在偶数小时内的1小时时段(即:允许选择1:00-2:00

我使用的是fullcalendar,网格设置为1/2小时间隔(slotMinutes设置为30分钟)。我希望默认的单击选择至少用于1小时的事件,但我希望开始时间以30分钟为增量。换句话说,我不希望用户能够突出显示少于一小时的任何时段,但我希望他们能够突出显示从一小时或半小时开始的1小时时段(即:1:30-2:30)

如果我将snapMinutes设置为60,这将解决第一部分的问题,不允许它们突出显示少于1小时的内容。但是,它不允许用户选择不在偶数小时内的1小时时段(即:允许选择1:00-2:00,但不允许选择1:30-2:30)。我有什么办法可以做到这一点吗

这是我正在使用的日历(咖啡脚本)

下面是一个JSFIDLE:

我的问题的第二部分是,我希望能够在上面动态设置默认的最小点击选择。从这个问题来看,如果不销毁并重新创建日历,我似乎无法动态更新snapMinutes选项:


还有其他建议吗

Lorill

如果我正确理解了您的问题,您可以覆盖dayClick方法(参见文档),并在内部使用fullcalendar选择方法进行自己的选择(再次参见文档)。 您可以使用dayClick的'date'参数作为选择的统计时间,并通过添加1h获得结束时间。 上面的效果是,在指定日期单击时,u将从单击的单元格中获得长度为1小时的选择。
希望这会有所帮助,如果您需要更具体的建议,请告诉我(我最近在fullcalendar中花了很多时间处理此类问题)

等等,因此您通常需要展示第一次尝试;你试过自己编写代码吗?如果是这样,请继续并张贴相关代码。否则,这个问题太宽泛了。嗨,蒂格,我已经添加了用于日历的代码。选项的动态更新已经作为功能请求出现在雷达上一段时间了:我在此处向FullCalendar添加了一个新的功能请求,以将选择持续时间功能与snapMinutes功能分开:我仍然希望此问题得到正确解决,但是我们已经实现了一种变通方法,如果用户选择的持续时间少于所需的持续时间,它会提醒他们持续时间无效,并取消选择他们刚刚选择的内容。不理想,但总比没有好。嗨,4rlekin,我认为这行不通。dayClick回调仅在释放鼠标时触发,也仅在未进行选择时才会触发(即:如果在一个插槽中单击并释放鼠标,则会触发回调,但如果单击并拖动以进行选择并在另一个插槽中释放鼠标,则不会触发dayClick)。我在上面的小提琴上试了一下,确认了这一点。
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)