完整日历销毁事件

Full Calendar Destroy event

本文关键字:事件 日历      更新时间:2023-09-26

我有一个单击事件,在其中我正在重新加载完整的日历。但在重新加载之后,我想隐藏执行单击事件的当前元素。但不知怎么的,它不起作用。下面是我的代码。

 $(document).on("click", 'a.btnExpandCollapseBook', function (e) {
       $('#calendar2').fullCalendar('destroy');
       calendarOptions.events = tempSourcearr; // assigning the events
       $('#calendar2').fullCalendar(calendarOptions);
       $(this).hide();// This is not working...
 });

您可以将自定义属性(例如"hidden"true/false)添加到事件中,并使用eventRender根据"hided"属性控制可见性

http://jsfiddle.net/hmspswu3/

var calendarOptions = {
  defaultDate: '2015-12-01',
  events: [{
    id: 1,
    start: '2015-12-03',
    end: '2015-12-07',
    title: 'Event 1',
    hidden: false
  }, {
    id: 2,
    start: '2015-12-13',
    end: '2015-12-17',
    title: 'Event 2',
    hidden: false
  }],
  eventRender: function(event, element, view) {
    return !event.hidden;
  },
  eventClick: function(event, jsEvent, view) {
    event.hidden = true;
    calendarOptions.events = $('#calendar').fullCalendar('clientEvents');
    $('#calendar').fullCalendar('destroy');
    $('#calendar').fullCalendar(calendarOptions);
  }
};
$('#calendar').fullCalendar(calendarOptions);

感谢每一个人,我找到了如下的替代解决方案。

 $.each($('#calendar2').fullCalendar('clientEvents'), function (i, item) {
     $('#calendar2').fullCalendar('removeEvents', item.id);
    }); // removes the event one by one
 $('#calendar2').fullCalendar('addEventSource', tempSourcearr); // assign the new data source.

用于销毁用途:

$('#calendar2').fullCalendar('destroy');