1

我正在使用最新的 Fullcalendar、jquery 1.10 和 qtip 2。

我只是在包含按钮的 eventRender 回调中添加一个 qtip 到元素:

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'
    }
});

在选择回调我有以下内容:

$('#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/

它有点不同,但只需单击一个日历项目,它会提示您是否要删除它,然后它应该弹出一个警报,但从来没有。

任何人都知道为什么它不起作用?

4

2 回答 2

1

根据完整的日历文档,eventDestroy仅从版本1.6.3开始可用并且您使用的是1.5

请参阅:http ://arshaw.com/fullcalendar/docs/event_rendering/eventDestroy/

编辑:我实际上只是通过修改你的小提琴来测试这个,看起来回调仍然不起作用。但是,当您调整窗口大小时会触发它(我假设 lib 正在重新呈现事件并因此破坏 DOM)。

稍微看一下代码,看起来 eventDestroy 回调仅在 fullcalendar 视图被销毁时才被调用。永远不要删除单个事件。所以这将是这个库的当前限制。

在您的情况下,直接从您的方法调用您的销毁回调会更容易removeEvent,因为您不能依赖 lib。

于 2013-10-09T19:20:34.893 回答
0

对于将来可能遇到此问题的人:“事件删除时的事件销毁回调”已在 2.1.0 版本中修复。

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

于 2014-10-10T21:59:35.243 回答