Estoy tratando de hacer si el evento de reservas cambia de color y no puedes arrastrarlo, busqué en Google para nada, decidí escribir al soporte de Stack. Atascado en esta tarea, gracias por cualquier ayuda y apoyo. Im uso (calendario completo v3)
El color cambia su okey, pero puede arrastrar,
// 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); }Como parece que ya se dio cuenta, si establece la propiedad editable de un evento en false , evitará que se arrastre.
Documentación:
Sin embargo, el problema es que está configurando el campo durante la devolución de llamada de eventRender . En ese momento es demasiado tarde, porque fullCalendar ya ha creado el HTML del evento a partir de las propiedades del evento. No lee más de ellos después de este punto. eventRender es simplemente su oportunidad de realizar más cambios en el HTML. Cualquier cambio que realice en las propiedades del evento se ignora.
Por lo tanto, debe realizar este cambio antes en el proceso. Creo que probablemente tienes un par de opciones:
Si está generando estos eventos en su código del lado del servidor (por ejemplo, de una lista en una base de datos, quizás), entonces podría establecer la propiedad editable antes de transformar los datos a JSON y devolverlos a fullCalendar.
Si eso no es posible por algún motivo, entonces fullCalendar ofrece la devolución de llamada eventDataTransform que le permite modificar las propiedades de un evento antes de que se represente en HTML. Por ejemplo:
eventDataTransform: function(event) { if (event.status == 'reserved') { event.editable = false; } return event; }Documentación: https://fullcalendar.io/docs/v3/eventDataTransform