Fullcalendar删除EventRender上的事件

时间:2017-12-22 04:27:32

标签: jquery fullcalendar

使用fullcalendar,我想删除已取消的事件:那些有event.post_appt_status_id ==' 3'。

现在在EventRender中,我根据appt状态预先添加了图标。他们工作正常。我认为那时可以轻松地从日历中删除已取消的活动。

它不起作用。这是我正在尝试的内容:

   eventRender: function eventRender(event, element, view) {

        //handle icon before time
        if(event.appt_status_id == '1'){         
            //confirmed icon
            element.find(".fc-time").prepend("<i class='fa fa-check-square-o'></i> ");
        } else if(event.appt_status_id == '2'){         
            //unconfirmed icon
            element.find(".fc-time").prepend("<i class='fa fa-minus-square-o'></i> ");
        } else if(event.appt_status_id == '8'){         
            //walkin icon
            element.find(".fc-time").prepend("<i class='fa fa-male'></i> ");
        } else if(event.appt_status_id == '9'){         
            //left message icon
            element.find(".fc-time").prepend("<i class='fa fa-phone-square'></i> ");
        };

        //handle icon before title
        if(event.post_appt_status_id == '6'){         
            //attended alone icon
            element.find(".fc-title").prepend("<i class='fa fa-user'></i> ");
        } else if(event.post_appt_status_id == '7'){         
            //attended companion icon
            element.find(".fc-title").prepend("<i class='fa fa-users'></i> ");
        } else if(event.post_appt_status_id == '4'){         
            //no show icon
            element.find(".fc-title").prepend("<i class='fa fa-exclamation-triangle'></i> ");
        } else if(event.post_appt_status_id == '3'){         
            //cancelled icon
            element.find(".fc-title").prepend("<i class='fa fa-ban'></i> ");
            $('#calendar_full').fullCalendar('removeEvent', event.id);
        };

        //add text to event
        element.find('.fc-title').append("<br/>" + event.appt_reason_name + " with " + event.scheduled_with_name); 

        //handle changing menu options at top
        return ['all', event.location_id].indexOf($('#calendar_location_id option:selected').val()) >= 0 && ['all', event.saw_by_id].indexOf($('#calendar_provider_id option:selected').val()) >= 0;

    },

我原以为$('#calendar_full').fullCalendar('removeEvent', event.id)会从日历中删除这些事件,但事实并非如此!

2 个答案:

答案 0 :(得分:2)

如果eventRender回调返回false,则可以取消事件呈现。

  

该函数也可以返回false以完全取消事件的呈现。

eventRender: function( event, element, view ) {
       //...
       if (event.post_appt_status_id == '3') {
           return false;
       }
       //...
 }

答案 1 :(得分:0)

您尝试使用的事件已从插件中删除,他们引入了一个名为“removeEvents”的新事件。

有关详细信息,请查看

https://fullcalendar.io/docs1/event_data/removeEvents/

OLD LINK

https://fullcalendar.io/docs1/removed/removeEvent/