如何从FullCalendar中删除此事件?

Bra*_*don 17 javascript jquery fullcalendar

日历允许用户将时间段拖到日历上,但我希望他们能够在点击它时将其删除.

所以在eventClick我有这个功能:

function (calEvent) {
  removeRequestedEvent($(this), calEvent);
},
Run Code Online (Sandbox Code Playgroud)

它只是传递日历事件和日历本身.

removeRequestedBooking: function (cal, calEvent) {
    if (!confirm("Delete?"))
        return;

    cal.fullCalendar("removeEvents", calEvent.id);
    cal.fullCalendar("rerenderEvents");

    // Re-show draggable element
    $("#requests #" + calEvent.id).show();
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用过滤器,但是返回语句中的断点永远不会被击中.

    cal.fullCalendar("removeEvents", function (event) {
        return event.id == calEvent.Id;
    });
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?(我知道Id是对的,最后一行有效).Firebug在javascript中没有显示任何错误.

我正在使用FullCalendar v1.4.10

elo*_*lon 28

当你拥有所有你的id时,使用Tuan的解决方案.

但是当你在你的事件中没有id时,就像这样(当你设置了id时这项工作也是如此):

eventClick: function(event){
   $('#myCalendar').fullCalendar('removeEvents',event._id);
}
Run Code Online (Sandbox Code Playgroud)

为什么会出现此问题?常见的原因是fullcalendar在添加新事件时不会自动添加id.如果是这样,您传递的ID是未定义的.当您尝试使用id或filter进行删除时,Fullcalendar在两种情况下都使用id.因此,当它的值未定义时,它总是返回false.要删除的元素的含义列表始终为空.


sed*_*nym 8

更简单:

eventClick: function(calEvent, jsEvent, view) {
    $('#calendar').fullCalendar('removeEvents', function (event) {
        return event == calEvent;
    });
}
Run Code Online (Sandbox Code Playgroud)


jus*_*tkt 4

您可以尝试使用对保存日历的 div 的调用,而不是使用传入的 cal 吗?

对于eventClickthis根据我在文档中阅读的内容指的是事件的 HTML。