日历允许用户将时间段拖到日历上,但是我希望他们能够在单击它时将其删除。
所以在 eventClick 中我有这个功能:
function (calEvent) {
removeRequestedEvent($(this), calEvent);
},
它只是传递日历事件和日历本身。
removeRequestedBooking: function (cal, calEvent) {
if (!confirm("Delete?"))
return;
cal.fullCalendar("removeEvents", calEvent.id);
cal.fullCalendar("rerenderEvents");
// Re-show draggable element
$("#requests #" + calEvent.id).show();
}
我也尝试过使用过滤器,但 return 语句上的断点永远不会被命中。
cal.fullCalendar("removeEvents", function (event) {
return event.id == calEvent.Id;
});
有什么想法吗? (我知道 ID 是正确的,最后一行有效)。 Firebug 在 JavaScript 中没有显示任何错误。
我正在使用 FullCalendar v1.4.10
最佳答案
当您准备好所有 ID 后,请使用 Tuan 的解决方案。
但是,当您的事件中没有 id 时,请这样做(当您设置了 id 时,此操作也有效):
eventClick: function(event){
$('#myCalendar').fullCalendar('removeEvents',event._id);
}
为什么会出现这个问题? 常见的原因是当您添加新事件时,fullcalendar 不会自动添加 id。如果是这样,您传递的 id 是未定义的。当您尝试使用 id 或过滤器进行删除时,Fullcalendar 在这两种情况下都会使用 id。因此,当它的值未定义时,它总是返回 false。意味着要删除的元素列表始终为空。
关于javascript - 如何从 FullCalendar 中删除此事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649357/