我正在使用全日历。我有一个自定义视图,但我不希望用户能够在此视图上选择时间范围。

            selectable: true,
            defaultView: 'multiColAgendaDay',
            events: '/events.json',
            views: {
                multiColAgendaDay:
                {
                    type: 'multiColAgenda',
                    duration: { days: 1 },
                    numColumns: gon.driver_num,
                    columnHeaders: gon.drivers_name,
                    buttonText: 'drivers'
                    // ,
                }
            },




我试图通过在选择中添加检查来解决此问题

            select: function (start, end, jsEvent, view) {
                if (view.name === 'multiColAgendaDay'){
                    calendar.fullCalendar('unselect');
                    alert("You can create event in week and day view.");
                    return;
                }
                $.getScript('/events/new', function () {
                    $('#event_date_range').val(moment(start).format("MM/DD/YYYY HH:mm") + ' - ' + moment(end).format("MM/DD/YYYY HH:mm"))
                    date_range_picker();
                    $('.start_hidden').val(moment(start).format('YYYY-MM-DD HH:mm'));
                    $('.end_hidden').val(moment(end).format('YYYY-MM-DD HH:mm'));
                });

                calendar.fullCalendar('unselect');
            },


我想知道其他方法。我希望有一种方法可以在特定视图中将selectable设置为false。

最佳答案

您可以将selectable: false添加到视图定义中(以向其添加其他属性的相同方式)。例如

multiColAgendaDay:
{
  type: 'multiColAgenda',
  duration: { days: 1 },
  numColumns: gon.driver_num,
  columnHeaders: gon.drivers_name,
  buttonText: 'drivers',
  selectable: false
}


使用此视图时,它将覆盖selectable的顶级设置。有关文档,请参见https://fullcalendar.io/docs/v3/view-specific-options#v2

只要您使用的是fullCalendar 2.4或更高版本,就可以使用。

09-25 19:46