使用fullCalendar,我允许用户在大日历(#cal_big)中选择月中视图,并在日视图中选择相应的小日历,并显示小时数(#cal_small).
每当用户在#cal_small中选择一个事件(一小时或一小时)时,我将显示一个确认/取消模式.确认/取消模式允许用户确认预订或取消预订(在语义上意味着用户并不真的想要预订该时段).

如果用户确认预订,我会向服务器发出ajax呼叫并注册预订.一旦ajax调用成功返回,我只需隐藏当前模态并显示"您的预订成功!" 新模式中的消息.这部分完美无瑕.
如果用户取消预订,则确认/取消模式被隐藏,我尝试以编程方式取消选择当前选择,这就是问题开始的地方.取消选择不起作用,似乎fullCalendar会记住所有这些未经确认的选择,当用户最终确认他的选择时,一大堆先前未经证实的选择都会在多个ajax调用中重复发送到服务器.

为什么会如此?如何阻止fullCalendar记住未经证实的选择?
这是代码: -
$(document).ready(function() {
var todayDate = new Date();
var myDate = todayDate.setDate(todayDate.getDate() - 1);
var csrfmiddlewaretoken = '{{ csrf_token }}';
var condo_slug = '{{ condo.slug }}';
var facility = $("#id_facility");
var cal_small_options = {
titleFormat: {
day: 'dddd'
},
header: {
left: '',
center:'title',
right:'',
},
height: 520,
defaultView: 'agendaDay',
editable: true,
minTime: '10:00',
maxTime: '23:00',
slotMinutes: 60,
selectable: true,
select: function(startDate, endDate, allDay, jsEvent, view) {
console.log("selection triggered", jsEvent.handleObj.guid)
checkAvailability(csrfmiddlewaretoken, condo_slug, facility, …Run Code Online (Sandbox Code Playgroud)