>我正在使用Fullcalendar latest,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);
}
在事件下销毁回调我有:
element.qtip('destroy');
我的问题是,当我调用回调时,事件销毁似乎从未被调用。
我在这里设置了一个jsfiddle示例:http://jsfiddle.net/MusicMonkey5555/Zs657/1/
它略有不同,但只需单击一个日历项目,它会提示您是否要删除它,然后它应该弹出一个警报,但永远不会。
有人知道为什么它不起作用吗?
根据完整的日历文档,eventDestroy
仅从版本 1.6.3 开始可用,而您使用的是 1.5。
请参阅:http://arshaw.com/fullcalendar/docs/event_rendering/eventDestroy/
编辑:我实际上刚刚通过修改您的小提琴对此进行了测试,看起来回调仍然不起作用。但是,当您调整窗口大小时会触发它(我假设库正在重新渲染事件并因此破坏 DOM)。
稍微看一下代码,看起来 eventDestroy 回调仅在完整日历视图被销毁时才被调用。从不删除单个事件。所以这将是这个库的当前限制。
在您的情况下,直接从 removeEvent
方法调用 destroy 回调会更容易,因为您不能依赖 lib
对于那些将来可能遇到此问题的人:"事件删除时的事件销毁回调"在 2.1.0 版本中得到了修复。
http://github.com/arshaw/fullcalendar/releases/tag/v2.1.0