javascript - Fullcalendar eventDestroy 从未被调用

标签 javascript jquery fullcalendar qtip2

我正在使用最新的 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/

相关文章:

javascript - 为什么 '\u{1D11E}' .charAt(0) 不等于 '\u{1D11E}' ?

javascript - 如何在 jQuery 中安排位置绝对 div

jquery - 使用 ASP.NET MVC 的 FullCalendar 中的 DateTimeOffset

javascript - 如何传递错误的变量

Javascript - 删除 URL 参数或设置另一个值

jquery - 在 IE8 中打印带有背景颜色的 div 内容

javascript - 在选择更改时动态禁用输入

Jquery 切换阿拉伯语字体

php - 如何在 Fullcalendar 中保存事件?

javascript - 如何创建自定义的 JavaScript 数组?