Full calendar v3特定事件禁用拖动



我想做的是,如果预订事件改变颜色,你不能拖动它,我在谷歌找不到任何东西,我决定写信给堆栈支持。坚持这个任务,感谢任何帮助和支持。我使用(v3全日历)

颜色可以改变,但是可以拖动,

// Event render
eventRender: function(event, element) {
if (event.status == 'reserved') {
// Here im try disable dragging
event.editable = false;
element.css({
'background': 'lemonchiffon',
});
}else if(event.status == 'available'){
element.css({
'background': 'lightgreen',
});
}
if(event.gap_beetween_slot === '0'){
$(element).find('.fc-resizer').remove();
}
$(element).find('.fc-title').html(event.title);
}

您似乎已经意识到,如果您将事件的editable属性设置为false,它将阻止它被拖动。

文档:

  • https://fullcalendar.io/docs/v3/event-object
  • https://fullcalendar.io/docs/v3/editable

然而,问题是你在eventRender回调期间设置字段。这时就太晚了,因为fullCalendar已经从事件的属性中创建了事件的HTML。在此之后,它不再从它们中读取数据。eventRender只是您对HTML进行进一步更改的机会。您对事件属性所做的任何更改都将被忽略。

因此,您需要在流程的早期进行此更改。我想你可能有几个选择:

  1. 如果你在服务器端代码中生成这些事件(例如从数据库中的列表,也许),那么你可以在将数据转换为JSON并返回给fullCalendar之前设置editable属性。

  2. 如果这是不可能的任何原因,然后fullCalendar提供eventDataTransform回调,允许您修改事件的属性它被呈现为HTML之前。例如:

eventDataTransform: function(event) {
if (event.status == 'reserved') {
event.editable = false;
}
return event;
}

文档:https://fullcalendar.io/docs/v3/eventDataTransform

相关内容

  • 没有找到相关文章

最新更新