Удалить только одно событие из серии событий с помощью jquery fullcalendar 1.5 - PullRequest
2 голосов
/ 23 апреля 2011

Скажем, у меня есть событие, которое повторяется каждый день.Теперь пользователь хочет удалить событие понедельника, но оставить все остальное.Как я могу это сделать?Прямо сейчас, поскольку все они имеют одинаковый повторяющийся идентификатор, он удалит все события.Я просто хочу, чтобы одно событие было удалено.

Можно ли удалить что-то еще, кроме Id?Например, я не могу использовать свои собственные свойства для события, чтобы удалить его?

Ответы [ 4 ]

2 голосов
/ 25 апреля 2011

Да, вы можете использовать свои собственные свойства.Но вам нужно сгенерировать их на стороне сервера при загрузке событий.

например (я приведу в качестве примера)

{
events: [
    {
        title: 'Event1',   //required
        start: '2011-04-04',    //required
        myUniqueID: '000001' //your UniqueID thats embedded in the event!
        className: 'id000001'    //your UniqueID that appears as a class on DOM and get directly using jquery

    },
    {
        title: 'Event2',
        start: '2011-05-05'
        myUniqueID: '000002' //your UniqueID thats embedded in the event!
        myOtherUnqieID: 'allYearOnly',
        yetAnotherUniqueID: 'userDelete:no',
        myBooleanID: false,   //not enclosed in '' !!
        className: 'id000002'    //your UniqueID that appears as a class on DOM and get directly using jquery
    }
    // etc...
],
color: 'yellow',   // an option for the whole source
textColor: 'black' // an option for the whole source

}

http://arshaw.com/fullcalendar/docs/event_data/Event_Object/

Читать о нестандартных полях

1 голос
/ 03 января 2012

Если вы установите атрибут id для событий (не myUniqueId, который является пользовательским атрибутом), то вы можете удалить одно или несколько событий с таким идентификатором, используя:

.fullCalendar("removeEvents", "your_event_id_here")
0 голосов
/ 29 августа 2017

Я создал полное решение для этого ответа, который оказался очень простым.Секрет заключается в том, чтобы использовать пользовательское свойство (в моем случае excludeDate), которое включает дату, которая будет исключена из ежедневного параллельного события.Затем в функции eventRender просто верните false при достижении этой даты.

eventRender: function(event, element, view) {

    var theDate = event.start
    var excludedDate = event.excludedDate;
    var excludedTomorrrow = new Date(excludedDate);
     //if the date is in between August 29th at 00:00 and August 30th at 00:00 DO NOT RENDER
    if( theDate >= excludedDate && theDate < excludedTomorrrow.setDate(excludedTomorrrow.getDate() + 1) ) {
        return false;
    }
    }

Перейти к рабочей демонстрации на jsfiddle

0 голосов
/ 15 февраля 2013

Когда у вас есть все ваши идентификаторы, используйте идею Изета.

Но когда у вас НЕ есть идентификаторы в вашем событии, сделайте это так (эта работа также, когда у вас есть идентификатор):

eventClick: function(event){
   $('#myCalendar').fullCalendar('removeEvents',event._id);
}

Я выяснил, почему возникает проблема: Как удалить это событие из FullCalendar?

...