jQuery Fullcalendar - 每个事件将可编辑事件更改为不可编辑(反之亦然)

jQuery Fullcalendar - per event change editable event to non-editable (or vice versa)

我一直在玩官方全日历CodePen

并且找不到使事件不可编辑(或可编辑)的方法。

在演示中,设置了全局选项:editable: true。如果我尝试通过以下方式更改每个事件的此设置:

  eventRender: function(event, element){
    event.editable=false;
    }

没有任何变化。事件仍然都是可编辑的(可调整大小、可拖动……)。我找到了这个 post jquery-fullcalendar-change-editable-properties-of-particular-event-on-a-calendar

建议是:

editable: false,
eventRender: function(event, element) {
    if(event.userId === user.id) {
        event.editable = true;
    }
}

但这不起作用。在 eventRendereventAfterRender 下更改 event.editable 不会产生任何效果。 是否可以动态更改此设置(每个事件)?

您可以使用 eventDataTransform 函数来检查您的活动是否具有所需的用户 ID,然后将可编辑的 属性 更改为 true。

$('#calendar').fullCalendar({
  header: {
  left: 'prev,next today',
  center: 'title',
  right: 'month,agendaWeek,agendaDay'
},
  events: 'https://fullcalendar.io/demo-events.json?overload-day',
  eventDataTransform: function(event){
  if(event.userId === user.id){
  event.editable=true;
  }
 return event;
}
});

});

编辑:我认为 eventRender 函数是用来修改元素的。要修改事件,您应该使用 eventDataTransform 函数