完整日历销毁事件

时间:2015-12-05 06:08:07

标签: javascript jquery fullcalendar

我有一个点击事件,在里面我正在重新加载fullcalendar。但是在重新加载之后我想隐藏执行click事件的当前元素。但不知何故它不起作用。以下是我的代码。

 $(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...
 });

3 个答案:

答案 0 :(得分:1)

您可以向事件添加自定义属性,例如'hidden'true / false,并使用eventRender根据'hidden'属性控制可见性

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);

答案 1 :(得分:0)

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

 $.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.

答案 2 :(得分:0)

用于销毁用途:

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