FullCalendar v4.2.0 destroy() 不工作

FullCalendar v4.2.0 destroy() not working

https://fullcalendar.io/docs/destroy

完整日历代码:

     document.addEventListener('DOMContentLoaded', function () {           
        var calendarEl = document.getElementById('calendar');
        var calendar = new FullCalendar.Calendar(calendarEl, {
            plugins: ['interaction', 'dayGrid', 'timeGrid'],                
            defaultDate: new Date(),
            navLinks: true,
            selectable: true,
            selectMirror: true,
            draggable: true,                
            editable: true,
            eventLimit: true, 
            events: [
                <?= $contents ?>
            ],                
        });

        calendar.render();
    });

FullCalendar v4.2 销毁不工作 我试过下面的方法,

 1. var calendarEl = document.getElementById('calendar');
    calendarE1.destroy();

 2. $("#calendar).destroy();

 3. calendarEl = document.getElementById('calendar');
    var calendar = new FullCalendar.Calendar(calendarEl, {
      plugins: ['interaction', 'dayGrid', 'timeGrid'],
    });
    calendar.destroy();

这些我试过了,但没有任何帮助!。 注意:我试图在 ajax 成功后销毁日历。
我的Objective是我需要销毁旧事件并通过新事件重新初始化。

基本上,您可以从 DOMContentLoaded 中初始化主日历对象,并在该页面中将其用作全局对象,如以下代码所示:

     var calendar;

     document.addEventListener('DOMContentLoaded', function () {           
     var calendarEl = document.getElementById('calendar');
     calendar = new FullCalendar.Calendar(calendarEl, {
            plugins: ['interaction', 'dayGrid', 'timeGrid'],                
            defaultDate: new Date(),
            navLinks: true,
            selectable: true,
            selectMirror: true,
            draggable: true,                
            editable: true,
            eventLimit: true, 
            events: [
                <?= $contents ?>
            ],                
        });

        calendar.render();
    });

现在在任何其他函数中你可以调用它来销毁如下:

if (calendar) {
   calendar.destroy();
}

另一种选择是使用 "refetchEvents",如 link 中所述:

而这个 link 也可能对您有所帮助: