从不调用全日历事件销毁



>我正在使用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

相关内容

  • 没有找到相关文章

最新更新