在FullCalendar中将数据传递给后台事件对象

当用户点击后台事件时,有没有办法获取我传递给eventObj的数据? 我的示例背景事件如下所示:

{ id: 'availableForMeeting', title: 'Test Background Event #1', start: '2015-08-13T07:30:00', end: '2015-08-13T12:30:00', rendering: 'background', sampleId: 214, color: 'red' } 

但我无法得到sampleId字段,因为它在jsEvent中不存在。

首先,为了在背景事件上实际获得单击处理程序,您必须使用委托的jquery .on()因为FullCalendar的eventClick不适用于后台事件。

 $("#calendar").on("click",".fc-bgevent",function(event){ console.log($(this).data()); }); 

只需这样,您将获得一个空的控制台日志。 我们需要将事件数据添加到event元素中。 我们可以在eventRender执行此eventRender

 eventRender: function(event,element,view){ $(element).data(event); }, 

工作JSFiddle

由于多个问题( z-indexheight )我无法触发点击,因此接受的答案对我没有用。 我想我找到了一个更清洁的解决方案。

解决方案是使用fullcalendar clientEvents方法。 它将使用events的客户端副本。 所以没有额外的api电话。

选择日期时, selectdayClick都会被触发。 因此,请选择最适合您需求的产品。 我认为select是一个很好的选择,因为如果需要,它会被多天选择解雇。

  select: function (startDate, endDate, jsEvent, view, resource) { //below code for passing events in bg events of fullcalender var events = $('#calendar').fullCalendar('clientEvents', function (evt) { //if same date as clicked date add element to events array return evt.start.isSame(startDate);//must return boolean }); console.log(events); } 

希望这有助于某人。