FullCalendar按ID删除外部事件

时间:2016-11-07 21:40:26

标签: jquery fullcalendar draggable

我正在使用FullCalendar和jQuery UI将“Days Off”拖动到我的日历上作为背景事件。

由于您无法点击FullCalendar中的背景事件,因此我创建了一个关闭日期的列表,并在其旁边显示“删除”按钮,并将事件ID作为数据属性。

但是,当我点击“删除”按钮时,即使它具有正确的ID,也不会删除该事件。

请看一下这个jsFiddle:https://jsfiddle.net/aaroncadrian/odhL964L/

为了向您显示事件ID已正确更新,我删除了事件的背景渲染,以便您可以单击该事件以显示其ID。您还可以在按钮及其data-id属性中查看事件ID。以下是删除事件的代码,但不起作用。

$('.remove').click(function(){

    // Get the ID for the event from the button
    var id = $(this).data('id');

    // Remove the event. **DOES NOT WORK**
    $('#calendar').fullCalendar('removeEvents', id);

});

是否可以通过点击相应的按钮告诉我如何删除活动?同样,理想情况下,我希望将这些被拖动的事件渲染为背景事件。

更新

我在加载时向页面添加了一个事件及其相应的按钮,并且自从事件在页面加载时呈现以来,删除事件的函数仍然有效。那么我需要采取哪些不同的做法,以便删除到日历上的外部事件将以相同的方式移除?

1 个答案:

答案 0 :(得分:1)

https://jsfiddle.net/oLe2Lgxs/

更改了

var button = '<button class="remove" data-id="' + event.id +'">Remove (' + event.id + ')</button>'; // Create remove button with data-id attribute with event ID

var button = '<button class="remove" data-id="' + event._id +'">Remove (' + event.id + ')</button>'; // Create remove button with data-id attribute with event ID

$('.remove').click(function(){

$('#daysOff').on('click', 'button.remove', function(){

让它从日历中删除项目。

不确定为什么使用内部事件 _id 适用于您指定的 ID 一个没有工作的地方。

您还可以在点击处理程序中删除 $(this).parent()。remove(); li 日期/按钮条目。