3

我正在从 JSON 源加载动态事件,但是每次单击不同的房间时,我都想在获取新事件之前清除所有事件

我试图清除 eventSource 但无济于事

var eventSource = calendar.getEventSources()
eventSource.remove();

这会导致错误:

Uncaught TypeError: eventSource.remove is not a function

我以前一直在使用 V3,但升级到 V4 并且文档有点难以理解如何清除事件。

4

4 回答 4

8

你绝对是正确的,我收拾东西的日子特别慢!

var eventSources = calendar.getEventSources(); 
var len = eventSources.length;
for (var i = 0; i < len; i++) { 
    eventSources[i].remove(); 
} 

正如ADyson所建议的那样,是解决方案。

于 2019-06-18T13:45:08.733 回答
6

您可以调用removeAllEvents函数来删除所有事件而不刷新整个页面:

document.addEventListener('DOMContentLoaded', function () {
     var calendarEl = document.getElementById('calendar');

     var calendar = new FullCalendar.Calendar(calendarEl, {/*OPTIONS*/});

     $('#button').on('click', function () {
          calendar.removeAllEvents();
     });
});
于 2020-06-05T14:25:22.953 回答
3

版本 5.4.0

事件删除

$('#calendar').fullCalendar('removeEvents');
于 2020-12-10T10:07:41.467 回答
2

版本 5 不支持该removeEvents功能。您可以遍历事件列表并一一删除:

var listEvent = calendar.getEvents();
listEvent.forEach(event => { 
  event.remove()
});
于 2020-11-06T10:20:20.627 回答