Fullcalendar 防止 eventDidMount 在拖动时触发常量

Fullcalendar prevent eventDidMount triggers constanty while dragging

我有一个 Tippy.js 集成到 FullCalendar.js 日历中。 在日历中拖动事件时,工具提示变得异常,失去对触发它的事件的引用。

我认为问题在于我在 eventDidMount 挂钩内创建了 Tippy(工具提示)实例,每次拖动事件捕捉到日历单元格时都会在拖动时调用它,并且这就是它在此过程中触发大量工具提示的原因。

Fullcalendar 有一个 eventDragStart(eventInfo) 的钩子,但我不知道如何找到附加的 tippy 实例来隐藏它。还是我应该完全避免在拖动时创建工具提示?

 //Other FullCalendar Initialization
 ...
 eventDidMount: function(info) {
     tippy(info.el, {
        interactive: true, 
        delay: 300,
        theme: 'light-border',
        maxWidth: 400,
        allowHTML: true,
        appendTo: document.getElementById('mainContent'),   
        content(reference) {
            //Tooltip content
            return tempRendered;
        },
      });                                     
 }
 eventDragStart(info){
   //I SUPPOSE HERE I SHOULD DO SOMETHING TO HIDE THE TIPPY TOOLTIP
 }

有什么想法吗?

嗯,我终于找到了在 FullCalendar 中解决这个问题的方法,而不是在 Tippy 中。

我在 eventDragStart 挂钩内的事件上设置了 _isDragging 属性:

    eventDragStart: function(info) {                            
        calendarInstance.getEventById(info.event.id).setExtendedProp( "_isDragging", true );

    },
      

那样的话,我可以在 eventDidMount 挂钩中检查这个标志并防止创建 Tippy 工具提示。

 eventDidMount: function(info) {  
                               
       const isDragging = 
calendarInstance.getEventById(info.event.id).extendedProps._isDragging;
       if (isDragging != null && isDragging) {
           return;
       }
    
       ...
        // Tippy Init
    },

重要提示: 我将 _isDragging 属性 直接设置为 Calendar 实例中的事件实例,因为这些挂钩收到的 info.event args 没有即时创建的属性。或者至少我没有找到让它工作的方法。