Fullcalendar eventDestroy никогда не вызывается

Я использую последнюю версию Fullcalendar, jquery 1.10 и qtip 2.

Я просто добавляю qtip в элемент обратного вызова в eventRender, который содержит кнопку:

element.qtip({
    content: {
        title: { text: event.title },
        text: '<button type="button" onclick="removeEvent(' + event.id + ')">Delete</button>'
    },
    show: {
        event: 'click',
        solo: true
    },
    hide: {
        event: 'unfocus click'
    }
});

При обратном вызове select у меня есть следующее:

$('#calendar').fullCalendar('renderEvent',
    {
        title: 'Available',
        start: start,
        end: end,
        allDay: allDay
    },
    true //make the event stick
);

И вот код удаления события:

function removeEvent(eventId, userId)
{    
    //Delete the event
    $('#calendar').fullCalendar('removeEvents', eventId);
}

При обратном вызове eventDestroy у меня есть:

element.qtip('destroy');

Моя проблема в том, что eventDestroy никогда не вызывается, когда я вызываю обратный вызов.

Я создал пример jsfiddle здесь: http://jsfiddle.net/MusicMonkey5555/Zs657/1/

Он немного отличается, но просто щелкните элемент календаря, он предложит, хотите ли вы его удалить, а затем должен появиться всплывающее предупреждение, но никогда этого не происходит.

У кого-нибудь есть идеи, почему это не работает?


person MusicMonkey5555    schedule 08.10.2013    source источник


Ответы (2)


Согласно полной документации календаря, eventDestroy доступен только начиная с версии 1.6.3, а вы используете 1.5.

См. : http://arshaw.com/fullcalendar/docs/event_rendering/eventDestroy/.

Изменить: я только что проверил это, изменив вашу скрипку, и похоже, что обратный вызов все еще не работает. Однако он срабатывает, когда вы изменяете размер окна (я предполагаю, что библиотека повторно отображает события и, следовательно, уничтожает DOM).

Глядя немного на код, похоже, что обратный вызов eventDestroy вызывается только тогда, когда уничтожается полное представление календаря. Никогда, когда вы удаляете отдельные события. Так что это будет текущим ограничением этой библиотеки.

В вашем случае будет проще напрямую вызвать обратный вызов уничтожения из вашего метода removeEvent, так как вы не можете полагаться на библиотеку для этого.

person Julian Descottes    schedule 09.10.2013
comment
Я использую v1.6.4 Хорошо, это имеет смысл. Спасибо, что изучили это подробнее. Я подумал, что смогу, просто у меня были некоторые проблемы с получением элемента, поэтому я мог удалить связанный с ним qtip. Кажется, я не мог получить этот элемент пользовательского интерфейса конкретно. - person MusicMonkey5555; 14.10.2013

Для тех, у кого может возникнуть эта проблема в будущем: «Обратный вызов уничтожения события при удалении события» исправлен в версии 2.1.0.

http://github.com/arshaw/fullcalendar/releases/tag/v2.1.0

person arussellk    schedule 10.10.2014