繁体   English   中英

如何在全日历中防止外部事件的突出显示(灰色背景)

[英]How to prevent highlight (gray background) of an external event in fullcalendar

我已经有了外部事件的开始时间和结束时间,但是有什么正确的方法可以在同一外部事件的突出显示(灰色背景)上设置结束时间。

或者,如果无法设置高光显示的结束时间,那么我们可以完全从外部/可拖动事件中删除fc-highlight吗?

顺便说一句,我已经问了这个问题,但是没有得到正确的答复,所以这就是为什么我再次问

有关更多详细信息,请在此处访问我的另一个问题: 在全日历中禁用外部事件的突出显示

您的CodePen开始...
我设法自定义了可拖动事件,以便将定义的持续时间用作时间计算。

我将data-duration-hourdata-duration-minute属性添加到了可拖动事件。

这些“数据”属性用于确定事件的结束时间。

现在,关于日历中drag (在drop之前)发生的突出显示...
仍然要亮2个小时。

您必须查看在fullCalendar选项中添加drag的函数。
我暂时不知道。

所以 ...我可能未回答正确的问题(关于拖动的高光效果)。
但这仍然是您项目的一个改进。

参见此CodePen

修改HTML:

<div class='fc-event' data-duration-hour="3" data-duration-minute="30">My Event 1</div>

JS修改为:

function external_event_dropped(date, external_event) {

  var event_object;
  var copied_event_object;
  var tempDate = new Date(date);

  event_object = $(external_event).data('eventObject');

  copied_event_object = $.extend({}, event_object);
  copied_event_object.start =  date;

  // This is the dropped date object
  console.log(date);

  // This is the drop time in clear.
  console.log( "dropped at: "+date.hour()+":"+date.minute() );


  // Retreive the data-duration from the dragged element.
  var durationHour = parseInt(external_event.data("duration-hour"));
  var durationMinute = parseInt(external_event.data("duration-minute"));
  console.log("DATA: "+durationHour+":"+durationMinute);


  // Clone the time object to modify it in order to create de end time.
  var dateEnd = date.clone();

  dateEnd = dateEnd.hour(dateEnd.hour()+durationHour);
  dateEnd = dateEnd.minute(dateEnd.minute()+durationMinute);

  // This is the end time object.
  console.log(dateEnd);

  // This is the drop end time in clear.
  console.log( "dropped at: "+dateEnd.hour()+":"+dateEnd.minute() );

  // Now set it to the FullCalendar object.
  copied_event_object.end = dateEnd;

  copied_event_object.allDay =  false;
  copied_event_object.title =  'ADEEL';

  external_event.remove();

  $('#exampleCalendar').fullCalendar('renderEvent', copied_event_object, true);

}

要获取完整的解决方案,请查看以下内容: 完整的日历外部/可拖动事件突出显示效果

在阅读了完整的日历文档并在此问题上花了很多时间之后,我想出了一个解决方案,希望它也能对其他人有所帮助。

因此,解决方案是:

  • 我添加了一个defaultTimedEventDuration选项,如果没有在事件上设置持续时间,则它是外部/可拖动事件的默认持续时间。

    例如: defaultTimedEventDuration: '01:00:00'

  • 还在html中添加了data-duration ,以获取动态持续时间和突出显示的效果。

    例如: <div class='fc-event' data-duration='03:00'>My Event 1</div>

注意:还可以在js data设置duration属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM