如何检查事件已经存在一天 – fullcalendar

使用renderEvent方法时,如何检查事件已存在一天。

我发现可以在堆栈中回答dayClick with clientEvents ,我不确定它如何用于renderEvent

 var diffDay = 5; for (var i = 0; i < diffDay; i++) { var copiedEventObject = $.extend({}, originalEventObject); var newDay = new Date(event.start); copiedEventObject.start = newDay; $inlineCalendar.fullCalendar('renderEvent', copiedEventObject, true); } 

我正在寻找下面的条件或任何其他解决方案

 if(....Condition?....){ $inlineCalendar.fullCalendar('renderEvent', copiedEventObject, true); } 

我的解决方案是比较EventObject的.start。

更新:经过讨论,似乎我们之前有过相反的理解,我更新了我的代码

所以我的解决方案的条件是:

 var allevents = $inlineCalendar.fullCalendar( 'clientEvents'); for(var i=0;i 

不幸的是,上面的答案在我的场景中不起作用 所以我从自己的方式找到了一个解决方案。 可能它会帮助某人,但不确定它是否正确。

 var allevents = $inlineCalendar.fullCalendar('clientEvents'); var arrAlleventsDate = []; for(i in allevents){ if(arrAlleventsDate.indexOf($.fullCalendar.formatDate(allevents[i].start, 'yyyyMMdd')) == -1){ arrAlleventsDate.push($.fullCalendar.formatDate(allevents[i].start, 'yyyyMMdd')); } } if(arrAlleventsDate.indexOf($.fullCalendar.formatDate(newDay, 'yyyyMMdd')) == -1){ $inlineCalendar.fullCalendar('renderEvent', copiedEventObject, true); } 

如果您希望为每个事件工作,请添加事件ID作为日期的前缀。

在议程视图中,我选中“选择”是否在所选时段内有其他事件; cheks是限制数字,字段(es:title或custom field)和时间段:

  select: function(start, end, jsEvent) { var maxEvent = 2; var allEvents = $('#calendar').fullCalendar( 'clientEvents'); var xst = moment(start); var xen = moment(end); var eventsCount = 0; var collideEvent; var tempField; for(var i=0;i=maxEvent && tempField != currentEvent.field) { alert("!"); $('#calendar').fullCalendar('unselect'); return false; break; } collideEvent = currentEvent; tempField = collideEvent.field; } //proceed! }