我正在使用最新的 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'
}
});
在选择回调中我有以下内容:
$('#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/
它有点不同,但只需单击一个日历项目,它就会提示您是否要删除它,然后它应该弹出一个警报,但从来不会。
有人知道为什么它不起作用吗?
最佳答案
根据完整的日历文档,eventDestroy
仅从版本 1.6.3 开始可用,并且您正在使用 1.5。
参见:http://arshaw.com/fullcalendar/docs/event_rendering/eventDestroy/
编辑:实际上我只是通过修改你的 fiddle 来测试这一点,看起来回调仍然不起作用。然而,当您调整窗口大小时,它会被触发(我假设库正在重新渲染事件,从而破坏 DOM)。
稍微看一下代码,看起来 eventDestroy 回调仅在 fullcalendar View 被销毁时才会被调用。永远不要在删除单个事件时这样做。所以这将是该库当前的限制。
就您而言,从 removeEvent
方法直接调用销毁回调会更容易,因为您不能依赖该库。
关于javascript - Fullcalendar eventDestroy 从未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237815/